Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7140171e authored by Trond Myklebust's avatar Trond Myklebust
Browse files

NFSv4.1/pnfs: Ensure we send layoutcommit before return-on-close



We must not send a close or delegreturn that would result in a
return-on-close of the layout without ensuring that we've also
sent the necessary layoutcommit.

Signed-off-by: default avatarTrond Myklebust <trond.myklebust@primarydata.com>
parent a0815d55
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -1090,6 +1090,7 @@ bool pnfs_roc(struct inode *ino)
	pnfs_get_layout_hdr(lo); /* matched in pnfs_roc_release */
	spin_unlock(&ino->i_lock);
	pnfs_free_lseg_list(&tmp_list);
	pnfs_layoutcommit_inode(ino, true);
	return true;

out_noroc:
@@ -1104,8 +1105,10 @@ bool pnfs_roc(struct inode *ino)
		}
	}
	spin_unlock(&ino->i_lock);
	if (layoutreturn)
	if (layoutreturn) {
		pnfs_layoutcommit_inode(ino, true);
		pnfs_send_layoutreturn(lo, stateid, IOMODE_ANY, true);
	}
	return false;
}