diff options
author | Trond Myklebust <trond.myklebust@primarydata.com> | 2016-07-24 23:08:59 +0200 |
---|---|---|
committer | Trond Myklebust <trond.myklebust@primarydata.com> | 2016-07-24 23:08:59 +0200 |
commit | 668f455dac57050e33a43ff5fe006f6cd947fc65 (patch) | |
tree | 46198f7e5f200bac7be319f9a5f003aebb18e600 /fs/nfs/nfs4proc.c | |
parent | Merge branch 'writeback' (diff) | |
parent | pNFS: Remove redundant smp_mb() from pnfs_init_lseg() (diff) | |
download | linux-668f455dac57050e33a43ff5fe006f6cd947fc65.tar.xz linux-668f455dac57050e33a43ff5fe006f6cd947fc65.zip |
Merge branch 'pnfs'
Diffstat (limited to 'fs/nfs/nfs4proc.c')
-rw-r--r-- | fs/nfs/nfs4proc.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index a1a3b4c9a563..d30f88c667b7 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c @@ -7944,8 +7944,7 @@ nfs4_layoutget_handle_exception(struct rpc_task *task, /* * Mark the bad layout state as invalid, then retry */ - set_bit(NFS_LAYOUT_INVALID_STID, &lo->plh_flags); - pnfs_mark_matching_lsegs_invalid(lo, &head, NULL, 0); + pnfs_mark_layout_stateid_invalid(lo, &head); spin_unlock(&inode->i_lock); pnfs_free_lseg_list(&head); status = -EAGAIN; @@ -8144,8 +8143,7 @@ static void nfs4_layoutreturn_release(void *calldata) spin_lock(&lo->plh_inode->i_lock); pnfs_mark_matching_lsegs_invalid(lo, &freeme, &lrp->args.range, be32_to_cpu(lrp->args.stateid.seqid)); - pnfs_mark_layout_returned_if_empty(lo); - if (lrp->res.lrs_present) + if (lrp->res.lrs_present && pnfs_layout_is_valid(lo)) pnfs_set_layout_stateid(lo, &lrp->res.stateid, true); pnfs_clear_layoutreturn_waitbit(lo); spin_unlock(&lo->plh_inode->i_lock); |