LICENSE MIT
deltas windows-smb-dead-vc-gc-20080627 and
windows-dead-vc-cleanup-take-two-20080703 attempted to
protect against an infinite recursion when cleaning up
dead smb virtual circuits. they failed to address the
incrementing of the vc refcount in smb_ReleaseVCInternal
when it is about to call smb_CleanupDeadVC. If the vc
is already being cleaned, then smb_ReleaseVCInternal
should not increment the refCount and should not call
smb_CleanupDeadVC.
LICENSE IPL10
FIXES 107767
avoid corrupting length in vnodeds when salvaging directories.
avoid tag reuse leaving data behind (not verified)
avoid not marking something busy during salvage
(cherry picked from commit 674e94b29c)
LICENSE IPL10
FIXES 107258
when giving back a volume after reclone, make it inService to avoid a race
between callers and the SetFlags RPC
(cherry picked from commit b4ce530d36)
LICENSE IPL10
The volume state is perfectly consistent. FSYNC_NEEDVOLUME (and the
other state in the pending_vol_op object) is perfectly normal -- it
simply means the volser has exclusive access to the volume for the
purposes of cloning. The bug is that during the DAFS development, I
changed the semantics of the VGetVolume interface without updating the
control logic in afsfileprocs accordingly:
In 1_4_x:
vp->specialstatus != 0 results in returning vp with nUsers incremented
and *ec = vp->sepcialstatus
In DAFS:
V_AttachState(vp) == VOL_STATE_UNATTACHED results in returning a NULL
vp. Since (vp->specialstatus != 0), *ec = vp->specialstatus.
The net result is we need to modify the VBUSY logic in CheckVnode().
(cherry picked from commit 5c762d3b76)
LICENSE IPL10
VOL_STATE_SALVSYNC_REQ is a mutally exclusive state. don't allow other things
to attempt to trigger that state when an exclusive state is already present
(cherry picked from commit f52f152236)
LICENSE IPL10
FIXES 74672
when renaming causes a dentry to be newer than its parent we handled it
incorrectly. zero the d_time to force correct evaluation to happen.
(cherry picked from commit 9f3629b018)
LICENSE IPL10
FIXES 102673
if we're building for 2.4.x we need to disable fedorakmod. do so here in our
packaging.
(cherry picked from commit 9946c027a3)
LICENSE IPL10
FIXES 105457
move the init_mm ifdef down far enough that it's effective and we actually
probe to be able to hook syscall table
(cherry picked from commit a4e3fb21f0)
LICENSE IPL10
FIXES 104698, 104699, 104305
make cellname get init'd right. correct startup argument order to match
what afsd does. call lookupname correctly (when did this break?)
at the same time, move the lookupname define out of afs_osi.h and into each
osi_machdep.h
(cherry picked from commit c61a8f37c9)
LICENSE IPL10
FIXES 105231
update specfile for new manpages.
update patch for 1.5.x/head
update makesrpm to quote some arguments to system so perl doesn't eat them
some rewriting from shadow@dementia.org including the patch update
(cherry picked from commit 0d343077ac)
LICENSE IPL10
FIXES 105109
exportfs - NFS translator:
- The exportfs code is updated for the new export ops. The changes are made
conditional on a new configure test that detects the new ops. fh_to_dentry()
basically replaces decode_fh and uses our own get_dentry function instead of the
now defunct find_exported_dentry.
- A check for fh_len=4 is removed - in testing this value is always 6, possibly
because of changes in the kernel code.
- The check for authtab in osi_nfssrv.c assumes that an undefined weak symbol is
0. On my system, an unresolved weak symbol in a loaded module gets the value
0xfffffffe (-2 or -ENOENT) - again, probably a change on the kernel side. Check
that the pointer is not an error constant using IS_ERR().
- In osi_vfsops.c, only use the export_ops bits if building the translator
afspag: the problem here was dealing with unresolved symbols
- afs_showflags is redefined in afs_pag_call.c so it's available for the afspag
module
- A new source file afs_warn.c gets the afs_warn* functions from afs_util.c.
This allows the afspag module to get the afs_warnuser function without dragging
in too many symbols. The new file is attached separately.
other:
- d_path() now takes a struct path argument - includes a new configure test
- osi_vfsmnt -> osi_vfsmount in osi_misc.c Looked like a typo?
- reorder the remove_proc_entry() calls - we need to remove the children before
the parent (introduced with my earlier patch)
(cherry picked from commit daf6b1cf28)
LICENSE MIT
When an SMB virtual circuit is prematurely closed due to an error
condition by one thread it is possible that there are still several
other threads still using the VC which will determine that the VC
is dead shortly. As a result we maintain a dead vc list to ensure
that dead vcs are not destroyed while still in use.
With the addition of locking though this causes a problem because the
locks allocated to the virtual circuit are not freed until the vc is
destroyed.
This patch reworks the cleanup routine to make the freeing of resources
the responsibility of the release routine when the refcount hits 0
and the VC is marked dead.
(cherry picked from commit 49db6afe0a)
LICENSE MIT
When constructing the shortname keyed entry in the tree, make
sure that the original long name is preserved.
(cherry picked from commit b5d888ed40)
LICENSE MIT
It is frequently the case that rx_getAllAddr() is called before
rx_Init() or rx_InitHost(). rx_getAllAddr() obtains the list of
interfaces by using rx_GetIFInfo() which in turn computes and
allocates the number of addition rx packets. Unfortunately,
rxi_MorePackets() relies on the existence of an initialized mutex
and the mutex is not initialized (on Windows) until the rx_InitHost()
call. Therefore, we must delay the rxi_MorePackets() call until
after rx_InitHost() if rx_getAllAddr() is called previously.
Failure to do so results in a panic.
(cherry picked from commit 749ae65481)
LICENSE MIT
Add lock assertions to various functions.
Obtain a missing lock around a call to cm_RemoveSCacheFromHashTable().
Correct an abstraction layer violation. cm_scache_t objects should
be marked deleted in cm_Unlink() and cm_RemoveDir() and not in
smb_CloseFID(). Cleanup of deleted cm_scache_t objects should be
performed in cm_ReleaseSCache() when the reference count hits zero.
Prototype cm_AdjustScacheLRU() and re-implement it using osi_QAddH().
(cherry picked from commit 52490d7968)
LICENSE MIT
If the attempt to write the buffer returns access denied, store that
in the cm_buf_t object so that the error can be propagated.
(cherry picked from commit 15ff831e4d)
LICENSE MIT
Prevent corruption of the cm_data.scacheHashTablep lists when removing
and then re-adding entries to the hash table. The cm_scache_t nextp
fields were not being reset to NULL which permitted loops to be created.
(cherry picked from commit ef48d6343d)
LICENSE MIT
when deleting entries from a directory for items with non-8.3 names
memory for the longname field would be leaked. don't do that.
(cherry picked from commit 39d2ac1438)
LICENSE BSD
Add documentation of foreign realm user registration and cross-realm PTS
groups. Add documentation of missing ptserver flags. Add some additional
to-do entries for the man pages.
(cherry picked from commit 1fdfac7065)