From: Dragos Tatulea Date: Sun, 30 Nov 2008 20:11:17 +0000 (+0000) Subject: DEVEL15-disconnected-refcount-fixes-20081130 X-Git-Tag: openafs-devel-1_5_56~44 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=f6d6bd6027dff4abbe6892bcbee92f8a5637d8bf;p=packages%2Fo%2Fopenafs.git DEVEL15-disconnected-refcount-fixes-20081130 LICENSE IPL10 FIXES 123714 fix code which tweaks refcounts on disconnected vcaches to be correct (cherry picked from commit fb549013e7bb2cf5cb3da3083349cb559c093e8f) --- diff --git a/src/afs/VNOPS/afs_vnop_rename.c b/src/afs/VNOPS/afs_vnop_rename.c index cb7a3f0af..13ced9536 100644 --- a/src/afs/VNOPS/afs_vnop_rename.c +++ b/src/afs/VNOPS/afs_vnop_rename.c @@ -246,6 +246,8 @@ afsrename(struct vcache *aodp, char *aname1, struct vcache *andp, tvc->ddirty_flags |= VDisconRenameSameDir; ReleaseWriteLock(&tvc->lock); } /* if not previously renamed */ + + afs_PutVCache(tvc); } else { code = ENOENT; } /* if (tvc) */ diff --git a/src/afs/afs_disconnected.c b/src/afs/afs_disconnected.c index aeeaaa37b..5579a0759 100644 --- a/src/afs/afs_disconnected.c +++ b/src/afs/afs_disconnected.c @@ -322,8 +322,10 @@ int chk_del_children_hook(void *hdata, /* Count unfinished dirty children. VDisconShadowed can still be set, * because we need it to remove the shadow dir. */ - if (tvc && tvc->ddirty_flags) { - v->count++; + if (tvc) { + if (tvc->ddirty_flags) + v->count++; + afs_PutVCache(tvc); }