NFSv4.2: Always decode the security label
authorTrond Myklebust <trond.myklebust@hammerspace.com>
Tue, 18 Oct 2022 21:41:30 +0000 (17:41 -0400)
committerTrond Myklebust <trond.myklebust@hammerspace.com>
Mon, 28 Nov 2022 03:09:59 +0000 (22:09 -0500)
If the server returns a reply that includes a security label, then we
must decode it whether or not we can store the results.

Fixes: 1e2f67da8931 ("NFS: Remove the nfs4_label argument from decode_getattr_*() functions")
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
fs/nfs/nfs4xdr.c

index 8c5298e37f0fc3633d5b459433de4daa09ac2aa5..9103e022376a122efb66eb65f91c600fc18651a7 100644 (file)
@@ -4755,12 +4755,10 @@ static int decode_getfattr_attrs(struct xdr_stream *xdr, uint32_t *bitmap,
        if (status < 0)
                goto xdr_error;
 
-       if (fattr->label) {
-               status = decode_attr_security_label(xdr, bitmap, fattr->label);
-               if (status < 0)
-                       goto xdr_error;
-               fattr->valid |= status;
-       }
+       status = decode_attr_security_label(xdr, bitmap, fattr->label);
+       if (status < 0)
+               goto xdr_error;
+       fattr->valid |= status;
 
 xdr_error:
        dprintk("%s: xdr returned %d\n", __func__, -status);