* 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.
(cherry picked from commit 516614090190f34cb74ec741cf06f86384bff4d1)
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.
(cherry picked from commit ff3436446e1c8447d0f9703b088c6d65c6845aa0)
compare vattrs against VNOVAL, not -1
fixes mode setting now that modes are 32 bits
(cherry picked from commit e86eb73e30fe492c8be99a0a7a4788ec1b136ead)
make things so file copies from src/libafs don't happen; change how libafs_tree
is done
(cherry picked from commit 187f26a3afe805180268322d93dd7e01974c5fb1)
make things so file copies from src/libafs don't happen; change how libafs_tree
is done
(cherry picked from commit 782109a29bd751a7681e3a31aeaa077e880208c3)
FIXES 17337
"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.
its seen limited testing here under 2.4/2.6."
(cherry picked from commit 72ea4e2c690d28b6c5c464368099b49dac847642)
"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."
(cherry picked from commit 73437ee7d469765df30285369301e3907fee0a3c)
"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."
(cherry picked from commit 8ccd2d91d89fc3ed0170a458853ec95ff274c87d)
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.
(cherry picked from commit f42701022203605f8509b106fe8ca1677666aaa9)
Rework the reference counting of the smb_vc_t objects to use
smb_ReleaseVC and smb_HoldVC. Add missing counts for references
from waiting locks.
Fix cm_ioctl.c to allow it to compile once again.
(cherry picked from commit eabe2b6f77da6913b4a6bd51220708c363762fe6)
FIXES 17266
"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)"
(cherry picked from commit 646028dbdb90640f14f7a22aede858432ffa9025)
FIXES 17211
"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."
(cherry picked from commit e4961402747d02f51b0ea82aad7f0d4f774dbeac)
FIXES 16965
" 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.
"
(cherry picked from commit 543d4464d8afe11e74b239abb5da20b0269259b3)
Fix a bug introduced in 1.3.75 within Tranceive(). If the file handle
is invalid, be sure to return an error.
(cherry picked from commit 5a3eddc8ba75832c55e322c7189ff5f20df834fe)
New AFS Logo Icon
Fix the assignment of the dataVersion for the freelance scache entries
Fix the calling convention of the AFSD Service Main function to be
WINAPI.
(cherry picked from commit 4c861ab65683add205d062790036b27123d0fe6b)
instead of losing, just send the packets and then make another pass to collect more
(cherry picked from commit 1a8519de16a2dad989300da94d597fac57c20c0f)