smb3.c: another fix for pattern matching. Patterns can include '<' and '>'
instead of '*' and '?'. Treat any pattern with angle bracket as
star patterns
afslogon.c: instead of retrying the username lowercased if it is all
uppercased. retry the username lowercased if it was not already
lowercased. this captures the mixedcase username case.
afskfw.c: If Leash is configured to not import tickets from the MSLSA,
neither should we.
cm_vnodeops.c: If the second to last component of a path is a symlink and
the last component cannot be found, return NOSUCHPATH instead of
FILE_NOT_FOUND.
* The list of ACL entries was becoming corrupted because the function
which obtained a free entry was doing so without the appropriate lock
being held.
* Changed the default @sys name list to "x86_win32 i386_w2k i386_nt40"
for 32-bit x86 systems. The default for itanium will be "ia64_win64"
and "amd64_win64" for amd 64-bit processors.
The list of ACL entries was being corrupted because the function
which obtains a free ACL entry was doing so without the appropriate
lock being held.
Returning Not A Directory is not the right thing to do when we are
attempting to resolve a path if the error is found on one of the
intermediary path components. Instead return No Such Path or
No Such File as appropriate.
"the latest 2.6 version of "tryflushdcachechildren" is probably
good enough for 2.2/2.4 as well. further, we can just call
d_invalidate() to make things less complicated. unification
is good.
see https://lists.openafs.org/pipermail/openafs-devel/2004-September/010967.htmland https://lists.openafs.org/pipermail/openafs-devel/2004-September/010968.html
"ok, if you ever drop
dcache_lock you need to go to restart (i think that's pretty clear).
shrink_dcache_parent() _might_ reduce a dentry count to 0. in the
previous version, it seemed to make the assumption that this would
always happen. if shrink_dcache_parent() is unsuccessful and the
dentry is a directory, we cant restart. we would just find the
the dentry again and do the same thing over (we could always d_drop
but you shouldnt do this to active directories -- see d_invalidate).
if we find a busy dentry, we abort all processing for this inode.
going back to restart would find the same busy inode. (i suppose
we could use a d_flag to keep track of which dentry has been shrunk.
this has other trouble, like who resets the flag and when?) since we
only do this for directories and d_alias typically only grows due to
soft/hard links (as far as i can tell) this scheme seems reasonable."
"The new buffer code (which I wrote) did not deal
with dcache object re-use, as I had conflated the concepts of "dcache *
reuse" and "dcache slot reuse".
This patch should fix this problem. It now stores the dcache index (aka slot number,
which is the same as the numeric part of the cache file's filename) in the
buffer instead of the ephemeral struct dcache pointer."
Doug Engert reports that large tokens are corrupted when being sent
using RX. This patch fixes two bugs which prevent the transmission
and receipt of multiple packet exchanges.
"The changes I submitted previously, and committed as
linux-26-vlru-cycle-20041012 do not satisfy necessary invariants of the
dcache api.
1) the dcache_lock is not held when calling d_unhashed and
list_empty(&dentry->d_subdirs)
2) the caller of d_prune_aliases does not hold it's own ref on the inode
Patch attached.(has been used lightly for a month or so)"
"lih_r now leaves the current lih_host held, and h_Releases those for which
it changed mind during h_Enumerate. It also closes the window that
ClearHostCallbacks_r opens.
The problem was: due to the leak on the h_Hold table, rx connections and
host and client structures stopped being garbage collected once the
fileserver went through GetSomeSpace_r. Only relevant for "busy" servers,
many would never even invoke this routine."
" the wake_up_bit() mechanism has replaced
'per object' wait queues (atleast when testing for single bit changes).
the actual wait queue to use is determined using a hash on page->flags
(which encodes the zone table in the lower 8 bits). afs inodes come from
a vmalloc() since afs gets all the inodes in one go. vmalloc()'d memory
apparently doesnt get mapped to any particular zone. so when an afs
inode uses wake_up_bit() they index off the end of the zone_page table.
"
====================
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.
====================
* The AFS Service needs to respond to SERVICE_ACCEPT_SHUTDOWN messages
in addition to SERVICE_ACCEPT_STOP.
* Move RPC shutdown until after the SMB and RX shutdown procedures
complete. Block until RPC shutdown is complete.
* Modify afslogon.dll (integrated logon) to wait for service if its
state is START_PENDING. If the timeout period occurs, reset to
the retry interval and not the sleep interval.
* When renewing the server list for a cell obtained via DNS AFSDB
records, the cm_cell_t entry must be removed from the list of all
cells. Otherwise, the list of cells will be corrupted.
* In the dcache and scache modules, use the cm_scache_t dataVersion
instead of the cm_fakeDirVersion.
* Synchronize fs.c with the unix version.
====================
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.
====================
* The variable used to determine whether a file or virtual memory
mapped cache is used was not properly initialized to a default
value. If the registry setting "NonPersistentCaching" was not
set, the choice would be random. Properly initialized to be
"file".
* The memory mapped view was never unmapped before closing the file
at service shutdown. This is now properly cleaned up.
* Default location of Cache file is now %TEMP%\AFSCache
All of AFSVolListOneVolume, AFSVolXListOneVolume, AFSVolListVolumes,
AFSVolXListVolumes currrently attach each volume to be listed with
V_READONLY. This makes the fileserver update and sync the volume header
before releasing the volume to the volserver. The result is that volume
list operations are slow, and generate lots of fileserver load, as Jimmy
pointed out during his talk this afternoon.
The attached patch introduces a new attach mode, V_PEEK, which is like a
cross between V_READONLY and V_SECRETLY. It can be used for read-only
operations on the volume header, where it is not necessary to inform the
fileserver that the volume is being accessed. The patch also changes
the above-named RPC's to use the new mode.
during unlink, afs sometimes renames the file instead of deleting it.
this isnt reflected properly in the dcache in linux. the following
patch attempts to address this issue. newname is renamed to afs_newname
and exported.
afs_linux_unlink() checks to see if the file is open. if so, it creates
a negative dcache entry using the name suggested by afs_newname(). then
dmove() moves (exchanges) dp and __dp. __dp is now a negative dentry
for the old name and is put/dropped.
====================
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.
====================