aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorNeil Brown <neilb@suse.de>2006-03-20 13:44:04 -0500
committerTrond Myklebust <Trond.Myklebust@netapp.com>2006-03-20 13:44:04 -0500
commit1dd594b21b2d98e56f2b1fe92bb222276b28de41 (patch)
treec11a062713429112f162dc986a1b4002b0da1c83 /fs
parentcd52ed35535ef443f08bf5cd3331d350272885b8 (diff)
downloadkernel_goldelico_gta04-1dd594b21b2d98e56f2b1fe92bb222276b28de41.zip
kernel_goldelico_gta04-1dd594b21b2d98e56f2b1fe92bb222276b28de41.tar.gz
kernel_goldelico_gta04-1dd594b21b2d98e56f2b1fe92bb222276b28de41.tar.bz2
NFS: Fix buglet in fs/nfs/write.c
I've been reading through fs/nfs/write.c trying to track down a bug that seems to be related to pages loosing a refcount and getting freed too early (you interested in detail??) and I spotted a little bug which the following patch should fix. Signed-off-by: Neil Brown <neilb@suse.de> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'fs')
-rw-r--r--fs/nfs/write.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/fs/nfs/write.c b/fs/nfs/write.c
index 9449b68..d6ad449 100644
--- a/fs/nfs/write.c
+++ b/fs/nfs/write.c
@@ -653,8 +653,11 @@ static struct nfs_page * nfs_update_request(struct nfs_open_context* ctx,
spin_unlock(&nfsi->req_lock);
error = nfs_wait_on_request(req);
nfs_release_request(req);
- if (error < 0)
+ if (error < 0) {
+ if (new)
+ nfs_release_request(new);
return ERR_PTR(error);
+ }
continue;
}
spin_unlock(&nfsi->req_lock);