Commit 33a43f28 authored by Andy Adamson's avatar Andy Adamson Committed by Trond Myklebust

NFSv4: A root pathname is sent as a zero component4

Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
parent 6b97fd3d
...@@ -2408,8 +2408,10 @@ static int decode_pathname(struct xdr_stream *xdr, struct nfs4_pathname *path) ...@@ -2408,8 +2408,10 @@ static int decode_pathname(struct xdr_stream *xdr, struct nfs4_pathname *path)
READ_BUF(4); READ_BUF(4);
READ32(n); READ32(n);
if (n <= 0) if (n < 0)
goto out_eio; goto out_eio;
if (n == 0)
goto root_path;
dprintk("path "); dprintk("path ");
path->ncomponents = 0; path->ncomponents = 0;
while (path->ncomponents < n) { while (path->ncomponents < n) {
...@@ -2430,6 +2432,13 @@ static int decode_pathname(struct xdr_stream *xdr, struct nfs4_pathname *path) ...@@ -2430,6 +2432,13 @@ static int decode_pathname(struct xdr_stream *xdr, struct nfs4_pathname *path)
out: out:
dprintk("\n"); dprintk("\n");
return status; return status;
root_path:
/* a root pathname is sent as a zero component4 */
path->ncomponents = 1;
path->components[0].len=0;
path->components[0].data=NULL;
dprintk("path /\n");
goto out;
out_eio: out_eio:
dprintk(" status %d", status); dprintk(" status %d", status);
status = -EIO; status = -EIO;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment