diff options
| author | 2014-10-08 16:39:12 -0400 | |
|---|---|---|
| committer | 2014-10-08 16:45:43 -0400 | |
| commit | 6543f803670530f6aa93790d9fa116d8395a537d (patch) | |
| tree | 0c39c9b0eaab0e5932eb43226c933e353abde369 /fs/nfs/filelayout/filelayout.c | |
| parent | NFSv4: Remove dead prototype for nfs4_insert_deviceid_node() (diff) | |
| download | wireguard-linux-6543f803670530f6aa93790d9fa116d8395a537d.tar.xz wireguard-linux-6543f803670530f6aa93790d9fa116d8395a537d.zip | |
NFSv4.1/pnfs: replace broken pnfs_put_lseg_async
You cannot call pnfs_put_lseg_async() more than once per lseg, so it
is really an inappropriate way to deal with a refcount issue.
Instead, replace it with a function that decrements the refcount, and
puts the final 'free' operation (which is incompatible with locks) on
the workqueue.
Cc: Weston Andros Adamson <dros@primarydata.com>
Fixes: e6cf82d1830f: pnfs: add pnfs_put_lseg_async
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Diffstat (limited to 'fs/nfs/filelayout/filelayout.c')
| -rw-r--r-- | fs/nfs/filelayout/filelayout.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/nfs/filelayout/filelayout.c b/fs/nfs/filelayout/filelayout.c index abc5056999d6..46fab1cb455a 100644 --- a/fs/nfs/filelayout/filelayout.c +++ b/fs/nfs/filelayout/filelayout.c @@ -1031,7 +1031,7 @@ filelayout_clear_request_commit(struct nfs_page *req, } out: nfs_request_remove_commit_list(req, cinfo); - pnfs_put_lseg_async(freeme); + pnfs_put_lseg_locked(freeme); } static void |
