From af61732e4aaac8e09369addde0ec31a88fad8964 Mon Sep 17 00:00:00 2001 From: Derrick Brashear Date: Wed, 28 Jan 2009 15:52:42 +0000 Subject: [PATCH] disconnected-deal-with-unlink-while-open-20090127 LICENSE IPL10 FIXES 124178 treat something as unlinked until a rename suceeds, then let that win --- src/afs/VNOPS/afs_vnop_remove.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/afs/VNOPS/afs_vnop_remove.c b/src/afs/VNOPS/afs_vnop_remove.c index fb86eced5..c358c29ec 100644 --- a/src/afs/VNOPS/afs_vnop_remove.c +++ b/src/afs/VNOPS/afs_vnop_remove.c @@ -446,6 +446,12 @@ afs_remove(OSI_VC_DECL(adp), char *aname, struct AFS_UCRED *acred) } tvc->uncred = acred; tvc->f.states |= CUnlinked; + /* if rename succeeded, remove should not */ + ObtainWriteLock(&tvc->lock, 715); + if (tvc->f.ddirty_flags & VDisconRemove) { + tvc->f.ddirty_flags &= ~VDisconRemove; + } + ReleaseWriteLock(&tvc->lock); } else { osi_FreeSmallSpace(unlname); } -- 2.39.5