NFS: Fix a refcounting issue in O_DIRECT
authorTrond Myklebust <Trond.Myklebust@netapp.com>
Tue, 19 Jun 2012 17:39:14 +0000 (13:39 -0400)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Tue, 19 Jun 2012 22:42:14 +0000 (18:42 -0400)
In nfs_direct_write_reschedule(), the requests from nfs_scan_commit_list
have a refcount of 2, whereas the operations in
nfs_direct_write_completion_ops expect them to have a refcount of 1.

This patch adds a call to release the extra references.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Cc: Fred Isaman <iisaman@netapp.com>
fs/nfs/direct.c

index 3168f6e3d4d4f3670b65e946bbfefcc0ada8374a..9a4cbfc85d81fd203efe4db51f8897eb6bf45185 100644 (file)
@@ -490,6 +490,7 @@ static void nfs_direct_write_reschedule(struct nfs_direct_req *dreq)
                        dreq->error = -EIO;
                        spin_unlock(cinfo.lock);
                }
+               nfs_release_request(req);
        }
        nfs_pageio_complete(&desc);