From a4497a58e4043a925b7b308bd2c32f0744eca440 Mon Sep 17 00:00:00 2001 From: Trond Myklebust Date: Tue, 4 Aug 2015 15:41:50 -0400 Subject: [PATCH] NFSv4.1/pnfs: Remove redundant checks in pnfs_layoutgets_blocked() If there are no valid layout segments, then we should already have checked in pnfs_update_layout() whether or not this is the first layoutget. Signed-off-by: Trond Myklebust --- fs/nfs/pnfs.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/fs/nfs/pnfs.c b/fs/nfs/pnfs.c index a6ec420983d1..8855b322d127 100644 --- a/fs/nfs/pnfs.c +++ b/fs/nfs/pnfs.c @@ -829,12 +829,10 @@ pnfs_layout_returning(const struct pnfs_layout_hdr *lo, /* lget is set to 1 if called from inside send_layoutget call chain */ static bool pnfs_layoutgets_blocked(const struct pnfs_layout_hdr *lo, - struct pnfs_layout_range *range, int lget) + struct pnfs_layout_range *range) { return lo->plh_block_lgets || test_bit(NFS_LAYOUT_BULK_RECALL, &lo->plh_flags) || - (list_empty(&lo->plh_segs) && - (atomic_read(&lo->plh_outstanding) > lget)) || pnfs_layout_returning(lo, range); } @@ -847,7 +845,7 @@ pnfs_choose_layoutget_stateid(nfs4_stateid *dst, struct pnfs_layout_hdr *lo, dprintk("--> %s\n", __func__); spin_lock(&lo->plh_inode->i_lock); - if (pnfs_layoutgets_blocked(lo, range, 1)) { + if (pnfs_layoutgets_blocked(lo, range)) { status = -EAGAIN; } else if (!nfs4_valid_open_stateid(open_state)) { status = -EBADF; @@ -1547,7 +1545,7 @@ lookup_again: goto out_put_layout_hdr; } - if (pnfs_layoutgets_blocked(lo, &arg, 0)) + if (pnfs_layoutgets_blocked(lo, &arg)) goto out_unlock; atomic_inc(&lo->plh_outstanding); spin_unlock(&ino->i_lock); @@ -1624,7 +1622,7 @@ pnfs_layout_process(struct nfs4_layoutget *lgp) goto out_forget_reply; } - if (pnfs_layoutgets_blocked(lo, &lgp->args.range, 1)) { + if (pnfs_layoutgets_blocked(lo, &lgp->args.range)) { dprintk("%s forget reply due to state\n", __func__); goto out_forget_reply; } -- 2.20.1