Fix the -parallel example in the main description text: "5all" should be
"all5". Reword the description a bit to hopefully make it clearer that
there are two separate values set here. Note under the option description
of -parallel that multiple partitions on the same device are normally
processed serially.
change nb_qpathinfo() 'Flag' to a thread local storage variable
'EnforcePathInfoErrors'.
Add new 'Type' values that permit the enforcement to be turned on and off
as needed by the test script.
Populate the IoBuffer with the low byte of the pid value.
====================
This delta was composed from multiple commits as part of the CVS->Git migration.
The checkin message with each commit was inconsistent.
The following are the additional commit messages.
====================
LICENSE BSD
Verified the state of every file's existence at every Query Path Info
call in the script. Added 'Type' == 1 (Does not Exist) as needed.
Removed the use of 'Type' == 1111 to disable enforcement part way through.
A test application that produces verifiable random test files.
====================
This delta was composed from multiple commits as part of the CVS->Git migration.
The checkin message with each commit was inconsistent.
The following are the additional commit messages.
====================
LICENSE BSD
separate rx debugging from cache manager debugging.
assign bit 5 of the TraceOption registry value to activation of
rx debug output via DebugOutputString().
The WinSock API does not include the Posix recvmsg/sendmsg interfaces.
Beginning with XP/2003 Microsoft began to support WSARecvMsg which is
a mostly compatible implementation of recvmsg. In Vista/2008 Microsoft
began to support WSASendMsg a mostly compatible implementation of sendmsg.
Neither are part of the WinSock API and therefore they must be loaded
at runtime via a WSAIoctl() call to obtain the function pointers.
When the functions are available it is now possible to avoid a large
number of memcpy() calls.
This patch also enables UDP port unreachable messages on XP and above.
In rx_SlowWritePacket the use of RX_MAXWVECS was incorrect. The
niovecs field is allocated as [RX_MAXWVECS+1] with the 0th element
reserved for the rx header. niovecs[RX_MAXWVECS] is therefore a
valid data buffer and the comparison should be (i <= RX_MAXWVECS).
This error has most likely not been noticed previously because
nothing in the OpenAFS source tree uses this function.
* add the cm_scache_t * of the directory being enumerated to the
cm_direnum_t object
* remove the cm_scache_t * from the cm_BPlusDirEnumBulkStat call
now that it is part of the cm_direnum_t object
* maintain a reference to the cm_scache_t for the life of the
cm_direnum_t object. This ensures that the object cannot be
recycled while the enumeration is in use.
based on patch from daleg@elemental.org. rename to avoid conflict with opensolaris
====================
This delta was composed from multiple commits as part of the CVS->Git migration.
The checkin message with each commit was inconsistent.
The following are the additional commit messages.
====================
LICENSE IPL10
FIXES 124116
based on patch from daleg@elemental.org. rename to avoid conflict with opensolar
is
====================
LICENSE IPL10
FIXES 124116
based on patch from daleg@elemental.org. rename to avoid conflict with opensolar
is
smb_ParseASCIIBlock() may be called with more than just data
type ASCII (0x4). If the type is 2, 3, or 4 the data field is
a null terminated string. If the type is 1 or 5 the data field
is a counted string. if the type is 2 the data field is never
Unicode.
In any case, if the type is unrecognized smb_ParseASCIIBlock()
will return NULL and all of the callers must be prepared to handle
it. If the return is NULL, the smb request will fail with
CM_ERROR_BADSMB.
Add system:ptsviewers to the privilege documentation of pts membership and
try to clarify the privilege required by being less verbose and hopefully
more direct.
The rx_pthread.h defines afs_kcondvar_t and afs_kmutex_t but
their use throughout the rx library is inconsistent. Sometimes
they are used, other times pthread_cond_t and pthread_mutex_t.
This commit ensures that afs_kmutex_t and afs_kcondvar_t are
used consistently.
Permit the rx library to be built without the RXDEBUG preprocessor
definition. When RXDEBUG is not defined all of the debugging functions
either become stubs or log a message indicating that the library was
built without RXDEBUG so that there will be no surprises. There
are no changes to the export list. By default RXDEBUG is defined.
Eventually the definition of RXDEBUG can become a configuration option
to the build system.
Permit rx statistics gathering to be disabled by setting the
new rx_stats_active variable to 0. This avoids grabbing the
rx_stats_mutex throughout the execution of the requests and
permits greater concurrency thoughout the library.
not everything should be under the rx_stats_mutex. doing so
results in too much lock contention. add new mutexes:
rx_quota_mutex, rx_waiting_mutex, rx_pthread_mutex, and rx_packets_mutex.
Each new mutex protects an associated group of variables.
if the socket buffer size specified by the configuration is too large
to be applied, do not drop down immediately to 32766 bytes. Instead
try increasingly smaller values trying to find the largest one that
works. use the same value for the send buf size as well.
Throughout rx_rdwr.c functions allocate a register variable 'cp'
which is used to optimize access to call->currentPacket.
Unfortunately, if the call->lock is dropped (for example, CV_WAIT)
the synchronization between the two is lost. This delta re-syncs
'cp' and call->currentPacket after each location where the call->lock
may be dropped.
Ensure that the input string is nul terminated and then instruct
WideCharToMultiByte to compute the length itself instead of passing
in a value that is very likely to be wrong.
1. Add functions cm_FreelanceFetchMountPointString and
cm_FreelanceFetchFileType to cm_freelance.c. These functions
permit the MountPointString and FileType to be obtained within
cm_GetSCache without requiring knowledge of data structures
that should be private to cm_freelance.c
2. Enforce the rule that odd vnode values are directory objects.
The root directory is 1 and everything else must be a multiple
of two.
3. Use the unique field as an index into the localMountPoints
array.
4. Fix cm_GetCallback to process freelance data refreshes on
all objects in the freelance volume not just the root directory.
If this is not done, an access to \\afs\foo prior to \\afs\all
being evaluated will cause an unnecessary attempt to send a
fetch status request to a file server and produce an alldown
error.
reverse change from 20081226. removing the auto-generated manifest
removes the manifest binding to the run time library. The reason
two manifests are specified is that we are merging them.
Validating the state of the rx library is hard. This patch makes it
a bit easier to validate from within crash dumps (or on Windows in
"fs memdump" output) whether rx packets and calls are in a sane state.
When the library is compiled with -DDEBUG the rx_call and rx_packet
data structures are extended to include a linked list of all allocated
objects and counters are added to track the number of packets on each
of the transmit, receive, and iovec queues.
This compliments the tracking of packet states via RX_PKTFLAGs.
For Windows, rx_DumpCalls and rx_DumpPackets functions are added
that will dump the state of all allocated calls and packets (in Checked
build) in response to a "fs memdump" command. These functions are
exported from afsrpc.dll.
adds ATTR_* constants for UKERNEL code, and makes use
of them. Without this in some cases updating file metadata will also
update unrelated metadata (e.g. truncating a file changes the mode
bits).
adds threadsafe positional i/o calls to
afs_usrops.c: uafs_pwrite and uafs_pread, allowing for threadsafe
libuafs i/o.
changes the types of some fs-related
variables to be more "correct", I think (off_t for offsets, mode_t for
file mode, etc), it fixes a bug where nDaemons is not correctly set from
the uafs_Init parameter, fixes a segfault in uafs_open when O_CREAT is
specified, initializes a couple of static vars, "#if 0"s out code that
copies tokens from kernel-space to user-space (doesn't seem to work from
what I've seen, and the current code crashes on clientless Solaris
machines from being killed by SIGSYS)