NFSv4: A root pathname is sent as a zero component4
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
diff --git a/fs/nfs/nfs4xdr.c b/fs/nfs/nfs4xdr.c
index 646f16d..1750d99 100644
--- a/fs/nfs/nfs4xdr.c
+++ b/fs/nfs/nfs4xdr.c
@@ -2408,8 +2408,10 @@
READ_BUF(4);
READ32(n);
- if (n <= 0)
+ if (n < 0)
goto out_eio;
+ if (n == 0)
+ goto root_path;
dprintk("path ");
path->ncomponents = 0;
while (path->ncomponents < n) {
@@ -2430,6 +2432,13 @@
out:
dprintk("\n");
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:
dprintk(" status %d", status);
status = -EIO;