diff options
author | Neil Brown <neilb@suse.de> | 2006-03-20 13:44:04 -0500 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2006-03-20 13:44:04 -0500 |
commit | 1dd594b21b2d98e56f2b1fe92bb222276b28de41 (patch) | |
tree | c11a062713429112f162dc986a1b4002b0da1c83 /fs | |
parent | cd52ed35535ef443f08bf5cd3331d350272885b8 (diff) | |
download | op-kernel-dev-1dd594b21b2d98e56f2b1fe92bb222276b28de41.zip op-kernel-dev-1dd594b21b2d98e56f2b1fe92bb222276b28de41.tar.gz |
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.c | 5 |
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); |