git://git.openafs.org
/
openafs.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
(parent:
50d57f6
)
disconnected-deal-with-unlink-while-open-20090127
author
Derrick Brashear
<shadow@dementia.org>
Wed, 28 Jan 2009 15:52:42 +0000 (15:52 +0000)
committer
Derrick Brashear
<shadow@dementia.org>
Wed, 28 Jan 2009 15:52:42 +0000 (15:52 +0000)
LICENSE IPL10
FIXES 124178
treat something as unlinked until a rename suceeds, then let that win
src/afs/VNOPS/afs_vnop_remove.c
patch
|
blob
|
history
diff --git
a/src/afs/VNOPS/afs_vnop_remove.c
b/src/afs/VNOPS/afs_vnop_remove.c
index
fb86ece
..
c358c29
100644
(file)
--- 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);
}