pnfs: Don't call commit on failed layoutget-on-open
authorTrond Myklebust <trond.myklebust@hammerspace.com>
Tue, 22 May 2018 15:15:32 +0000 (11:15 -0400)
committerTrond Myklebust <trond.myklebust@hammerspace.com>
Thu, 31 May 2018 19:03:12 +0000 (15:03 -0400)
If the layoutget on open call failed, we can't really commit the inode,
so don't bother calling it.

Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
fs/nfs/pnfs.c

index 717cd95a0306f5128bb9b2f7607ab0b82a954cdd..d93942fa3817d9c2c63397c122960e567787efc8 100644 (file)
@@ -2148,10 +2148,7 @@ void pnfs_parse_lgopen(struct inode *ino, struct nfs4_layoutget *lgp,
                                lgp->callback_count))
                return;
        lseg = pnfs_layout_process(lgp);
-       if (IS_ERR(lseg)) {
-               /* ignore lseg, but would like to mark not to try lgopen */
-               /* clear some lo flags - first and fail ???? */
-       } else {
+       if (!IS_ERR(lseg)) {
                iomode = lgp->args.range.iomode;
                pnfs_layout_clear_fail_bit(lo, pnfs_iomode_to_fail_bit(iomode));
                pnfs_put_lseg(lseg);
@@ -2236,8 +2233,6 @@ out_forget:
        spin_unlock(&ino->i_lock);
        lseg->pls_layout = lo;
        NFS_SERVER(ino)->pnfs_curr_ld->free_lseg(lseg);
-       if (!pnfs_layout_is_valid(lo))
-               nfs_commit_inode(ino, 0);
        return ERR_PTR(-EAGAIN);
 }