To cure "Failed to invalidate all pages on inode 0xc9208720"
====================
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.
====================
It turns out defining AFS_64BIT_ENV ends up causing accesses to hang
if a server goes down; Should not be the case but other work will be needed
to figure out why or even if we need to be AFS_64BIT_ENV; in the meantime,
revert this part of patches done for xdr_int64; it's not ncessary now anyhow
Based on collaboration with Chas Williams and Chaskiel Grundman
Always force revalidation so if call which caused caching was in another
authentication "context" we don't inadvertantly leak information.
Cases where things matter involve bad caching for negative dentries
(something fails because you don't have permission, then you authenticate
and the negative dentry is not flushed) or when you have l only and
someone with rl caused the dentry to get cached, in which case stat()
information and nothing else is leaked
ENOTDIR
pathname, or a component used as a directory in
pathname, is not, in fact, a directory.
ENOTEMPTY
pathname contains entries other than . and .. .
meaning what we really want to return here is ENOTEMPTY
====================
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.
====================
ignore serverLog on nt
====================
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.
====================
correct typo for nt
====================
update volinfo -filenames feature for nt
"I have found a "nice" bug in namei_ops.c:
In GetFreeTag() the following code was used to find a free place in the
link table entry:
/* Now find a free column in this row and claim it. */
coldata = 0x7;
for (col = 0; col<NAMEI_MAXVOLS; col++) {
coldata <<= col * 3;
if ((row & coldata) == 0)
break;
}
What happens?
With col == 0 we look for the bits 0x7. This is ok.
With col == 1 we look for the bits 0x38. This is also ok.
With col == 2 we look for the bits 0xe00 instead of 0x1c0 !!!
But later the allocation is done correctly with 0x40.
Thus the next time he will find again a free place for col == 2 !
For higher values of col the test is also incorrect, of course."
"This is an addition for MR-AFS log files where the thread
name is shown. rx switches the general server threads to listeners and
vice versa. To have reasonable names the listener must get back his old
name when converting himself to a server thread. To not bother other
programs with unresolved references I do this with two function pointers
which are initialized in the main() programs for MR-AFS."
====================
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.
====================
use function pointers here instead of threadname
If compiled without AFS_NAMEI_ENV existence
of AFSIDat must stop us. If compiled with AFS_NAMEI_ENV volume headers
in a partition, but no AFSIDat must stop us.