Skip to content

Commit

Permalink
NFS: fix directio refcount bug on commit
Browse files Browse the repository at this point in the history
This reverts a hunk from commit 0427708
"NFS: Clean up - Simplify reference counting in fs/nfs/direct.c"

The cleanups in that patch affect the write path, but by the time
processing hits commit the removed reference has been added back by
nfs_scan_commit_list().  Without this reversion, any page that is
sent to commit holds on to an unbalanced reference that is never
freed.  The immediate effect is an imbalance over the wire between
OPENs and CLOSEs.

Signed-off-by: Fred Isaman <iisaman@netapp.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
  • Loading branch information
Fred Isaman authored and Trond Myklebust committed Jun 9, 2012
1 parent 2d0dbc6 commit 906369e
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions fs/nfs/direct.c
Original file line number Diff line number Diff line change
Expand Up @@ -517,9 +517,9 @@ static void nfs_direct_commit_complete(struct nfs_commit_data *data)
nfs_list_remove_request(req);
if (dreq->flags == NFS_ODIRECT_RESCHED_WRITES) {
/* Note the rewrite will go through mds */
kref_get(&req->wb_kref);
nfs_mark_request_commit(req, NULL, &cinfo);
}
} else
nfs_release_request(req);
nfs_unlock_and_release_request(req);
}

Expand Down

0 comments on commit 906369e

Please sign in to comment.