[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <ec5c3df63eafa2691665b95e989d7c3c@zipernowsky.hu>
Date: Sat, 02 Aug 2008 14:10:27 +0200
From: Oliver Pinter <oliver@...ernowsky.hu>
To: Trond Myklebust <Trond.Myklebust@...app.com>, stable@...nel.org
Cc: linux-kernel@...r.kernel.org
Subject: [RFC, 2.6.26.2-rc1] NFS: Ensure we call nfs_sb_deactive() after releasing
the directory inode
>From 744d18dbfae07482ea461701b0aaec3a75ec9224 Mon Sep 17 00:00:00 2001
From: Trond Myklebust <Trond.Myklebust@...app.com>
Date: Sun, 27 Jul 2008 18:03:19 -0400
Subject: [PATCH] NFS: Ensure we call nfs_sb_deactive() after releasing the
directory inode
[ Upstream commit 744d18dbfae07482ea461701b0aaec3a75ec9224 ]
In order to avoid the "Busy inodes after unmount" error message, we need to
ensure that nfs_async_unlink_release() releases the super block after the
call to nfs_free_unlinkdata().
Signed-off-by: Trond Myklebust <Trond.Myklebust@...app.com>
CC: Oliver Pinter <oliver.pntr@...il.com>
diff --git a/fs/nfs/unlink.c b/fs/nfs/unlink.c
index 3adf8b2..f089e58 100644
--- a/fs/nfs/unlink.c
+++ b/fs/nfs/unlink.c
@@ -95,10 +95,11 @@ static void nfs_async_unlink_done(struct rpc_task
*task, void *calldata)
static void nfs_async_unlink_release(void *calldata)
{
struct nfs_unlinkdata *data = calldata;
+ struct super_block *sb = data->dir->i_sb;
nfs_dec_sillycount(data->dir);
- nfs_sb_deactive(NFS_SERVER(data->dir));
nfs_free_unlinkdata(data);
+ nfs_sb_deactive(NFS_SB(sb));
}
static const struct rpc_call_ops nfs_unlink_ops = {
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists