All of lore.kernel.org
 help / color / mirror / Atom feed
From: Trond Myklebust <trond.myklebust@primarydata.com>
To: linux-nfs@vger.kernel.org
Subject: [PATCH v3 01/18] pNFS: Ensure nfs4_layoutget_prepare returns the correct error
Date: Mon,  4 Jan 2016 13:20:59 -0500	[thread overview]
Message-ID: <1451931676-68481-1-git-send-email-trond.myklebust@primarydata.com> (raw)

If we're unable to perform the layoutget due to an invalid open stateid
or a bulk recall, ensure that we return the error so that the caller
can decide on an appropriate action.

Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
---
 fs/nfs/nfs4proc.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
index 18d862db15b6..fcd7a9039020 100644
--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -7760,6 +7760,7 @@ nfs4_layoutget_prepare(struct rpc_task *task, void *calldata)
 	struct nfs4_layoutget *lgp = calldata;
 	struct nfs_server *server = NFS_SERVER(lgp->args.inode);
 	struct nfs4_session *session = nfs4_get_session(server);
+	int ret;
 
 	dprintk("--> %s\n", __func__);
 	/* Note the is a race here, where a CB_LAYOUTRECALL can come in
@@ -7770,12 +7771,12 @@ nfs4_layoutget_prepare(struct rpc_task *task, void *calldata)
 	if (nfs41_setup_sequence(session, &lgp->args.seq_args,
 				&lgp->res.seq_res, task))
 		return;
-	if (pnfs_choose_layoutget_stateid(&lgp->args.stateid,
+	ret = pnfs_choose_layoutget_stateid(&lgp->args.stateid,
 					  NFS_I(lgp->args.inode)->layout,
 					  &lgp->args.range,
-					  lgp->args.ctx->state)) {
-		rpc_exit(task, NFS4_OK);
-	}
+					  lgp->args.ctx->state);
+	if (ret < 0)
+		rpc_exit(task, ret);
 }
 
 static void nfs4_layoutget_done(struct rpc_task *task, void *calldata)
-- 
2.5.0


             reply	other threads:[~2016-01-04 18:21 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-04 18:20 Trond Myklebust [this message]
2016-01-04 18:21 ` [PATCH v3 02/18] NFSv4.1/pNFS: Add a helper to mark the layout as returned Trond Myklebust
2016-01-04 18:21   ` [PATCH v3 03/18] pNFS: If we have to delay the layout callback, mark the layout for return Trond Myklebust
2016-01-04 18:21     ` [PATCH v3 04/18] NFSv4.1/pNFS: Ensure we enforce RFC5661 Section 12.5.5.2.1 Trond Myklebust
2016-01-04 18:21       ` [PATCH v3 05/18] NFSv4.1/pNFS: Don't return NFS4ERR_DELAY unnecessarily in CB_LAYOUTRECALL Trond Myklebust
2016-01-04 18:21         ` [PATCH v3 06/18] NFSv4: List stateid information in the callback tracepoints Trond Myklebust
2016-01-04 18:21           ` [PATCH v3 07/18] NFS/pNFS: Fix up pNFS write reschedule layering violations and bugs Trond Myklebust
2016-01-04 18:21             ` [PATCH v3 08/18] NFS: Allow multiple commit requests in flight per file Trond Myklebust
2016-01-04 18:21               ` [PATCH v3 09/18] NFSv4.1/pNFS: Don't queue up a new commit if the layout segment is invalid Trond Myklebust
2016-01-04 18:21                 ` [PATCH v3 10/18] NFS: Relax requirements in nfs_flush_incompatible Trond Myklebust
2016-01-04 18:21                   ` [PATCH v3 11/18] NFSv4.1/pNFS: Don't pass stateids by value to pnfs_send_layoutreturn() Trond Myklebust
2016-01-04 18:21                     ` [PATCH v3 12/18] NFSv4.1/pNFS: Use nfs4_stateid_copy for copying stateids Trond Myklebust
2016-01-04 18:21                       ` [PATCH v3 13/18] NFSv4.1/pNFS: pnfs_mark_matching_lsegs_return() should set the iomode Trond Myklebust
2016-01-04 18:21                         ` [PATCH v3 14/18] NFSv4.1/pNFS: pnfs_error_mark_layout_for_return() must always return layout Trond Myklebust
2016-01-04 18:21                           ` [PATCH v3 15/18] NFSv4.1/pNFS: Fix a race in initiate_file_draining() Trond Myklebust
2016-01-04 18:21                             ` [PATCH v3 16/18] NFSv4.1/pNFS: Cleanup pnfs_mark_matching_lsegs_invalid() Trond Myklebust
2016-01-04 18:21                               ` [PATCH v3 17/18] NFSv4.1/pnfs: Cleanup copying of pnfs_layout_range structures Trond Myklebust
2016-01-04 18:21                                 ` [PATCH v3 18/18] NFSv4.1/pNFS: Cleanup constify struct pnfs_layout_range arguments Trond Myklebust

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1451931676-68481-1-git-send-email-trond.myklebust@primarydata.com \
    --to=trond.myklebust@primarydata.com \
    --cc=linux-nfs@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.