X-Git-Url: http://drtracing.org/?a=blobdiff_plain;ds=sidebyside;f=fs%2Fnfs%2Fnfs4proc.c;h=adae525edec4e932b1298676a672648016a19ef5;hb=58baac0ac7cc13a690f6f7cea23accaf84e843a0;hp=a7d564a83665033d2f2ea7387ccabd7ae3e48a96;hpb=8d0ed0ca6381fea4a97f3b0f085cb1dfa0a50ec0;p=deliverable%2Flinux.git diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index a7d564a83665..adae525edec4 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c @@ -7811,6 +7811,15 @@ static void nfs4_layoutget_done(struct rpc_task *task, void *calldata) switch (task->tk_status) { case 0: goto out; + + /* + * NFS4ERR_LAYOUTUNAVAILABLE means we are not supposed to use pnfs + * on the file. set tk_status to -ENODATA to tell upper layer to + * retry go inband. + */ + case -NFS4ERR_LAYOUTUNAVAILABLE: + task->tk_status = -ENODATA; + goto out; /* * NFS4ERR_BADLAYOUT means the MDS cannot return a layout of * length lgp->args.minlength != 0 (see RFC5661 section 18.43.3).