diff options
Diffstat (limited to 'fs')
-rw-r--r-- | fs/nfs/nfs4proc.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index 8de0435caed..ce1ebff49fd 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c | |||
@@ -6346,7 +6346,6 @@ static void nfs4_layoutreturn_done(struct rpc_task *task, void *calldata) | |||
6346 | { | 6346 | { |
6347 | struct nfs4_layoutreturn *lrp = calldata; | 6347 | struct nfs4_layoutreturn *lrp = calldata; |
6348 | struct nfs_server *server; | 6348 | struct nfs_server *server; |
6349 | struct pnfs_layout_hdr *lo = lrp->args.layout; | ||
6350 | 6349 | ||
6351 | dprintk("--> %s\n", __func__); | 6350 | dprintk("--> %s\n", __func__); |
6352 | 6351 | ||
@@ -6358,19 +6357,20 @@ static void nfs4_layoutreturn_done(struct rpc_task *task, void *calldata) | |||
6358 | rpc_restart_call_prepare(task); | 6357 | rpc_restart_call_prepare(task); |
6359 | return; | 6358 | return; |
6360 | } | 6359 | } |
6361 | spin_lock(&lo->plh_inode->i_lock); | ||
6362 | if (task->tk_status == 0 && lrp->res.lrs_present) | ||
6363 | pnfs_set_layout_stateid(lo, &lrp->res.stateid, true); | ||
6364 | lo->plh_block_lgets--; | ||
6365 | spin_unlock(&lo->plh_inode->i_lock); | ||
6366 | dprintk("<-- %s\n", __func__); | 6360 | dprintk("<-- %s\n", __func__); |
6367 | } | 6361 | } |
6368 | 6362 | ||
6369 | static void nfs4_layoutreturn_release(void *calldata) | 6363 | static void nfs4_layoutreturn_release(void *calldata) |
6370 | { | 6364 | { |
6371 | struct nfs4_layoutreturn *lrp = calldata; | 6365 | struct nfs4_layoutreturn *lrp = calldata; |
6366 | struct pnfs_layout_hdr *lo = lrp->args.layout; | ||
6372 | 6367 | ||
6373 | dprintk("--> %s\n", __func__); | 6368 | dprintk("--> %s\n", __func__); |
6369 | spin_lock(&lo->plh_inode->i_lock); | ||
6370 | if (lrp->res.lrs_present) | ||
6371 | pnfs_set_layout_stateid(lo, &lrp->res.stateid, true); | ||
6372 | lo->plh_block_lgets--; | ||
6373 | spin_unlock(&lo->plh_inode->i_lock); | ||
6374 | pnfs_put_layout_hdr(lrp->args.layout); | 6374 | pnfs_put_layout_hdr(lrp->args.layout); |
6375 | kfree(calldata); | 6375 | kfree(calldata); |
6376 | dprintk("<-- %s\n", __func__); | 6376 | dprintk("<-- %s\n", __func__); |