From: adilger Date: Fri, 24 May 2002 18:46:33 +0000 (+0000) Subject: Fix refcount problem. It wasn't dentries that were causing the problem, X-Git-Tag: 0.4.2~244 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=626d79b6227bbbe6725898a9c0076ead751a4ea7;p=fs%2Flustre-release.git Fix refcount problem. It wasn't dentries that were causing the problem, but an unbalanced push_ctxt() increasing the mnt->mnt_count and not allowing us to free the superblock. Argh. --- diff --git a/lustre/obdfilter/filter.c b/lustre/obdfilter/filter.c index bb7a56b..f029fd8 100644 --- a/lustre/obdfilter/filter.c +++ b/lustre/obdfilter/filter.c @@ -662,7 +662,6 @@ static int filter_destroy(struct obd_conn *conn, struct obdo *oa) CDEBUG(D_INODE, "destroying object %Ld\n",oa->o_id); obddev = conn->oc_dev; - push_ctxt(&saved, &obddev->u.filter.fo_ctxt); dir_dentry = filter_parent(obddev, oa->o_mode); down(&dir_dentry->d_inode->i_sem); @@ -678,7 +677,6 @@ static int filter_destroy(struct obd_conn *conn, struct obdo *oa) } inode->i_mode = 010000; - CDEBUG(D_INODE, "calling vfs_unlink for object #%ld\n", inode->i_ino); push_ctxt(&saved, &obddev->u.filter.fo_ctxt); rc = vfs_unlink(dir_dentry->d_inode, object_dentry); pop_ctxt(&saved);