]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
NFSv4: Clear the NFS_CAP_FS_LOCATIONS flag if it is not set
authorTrond Myklebust <trond.myklebust@hammerspace.com>
Fri, 29 Aug 2025 16:07:22 +0000 (09:07 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 19 Sep 2025 14:35:43 +0000 (16:35 +0200)
[ Upstream commit dd5a8621b886b02f8341c5d4ea68eb2c552ebd3e ]

_nfs4_server_capabilities() is expected to clear any flags that are not
supported by the server.

Fixes: 8a59bb93b7e3 ("NFSv4 store server support for fs_location attribute")
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
fs/nfs/nfs4proc.c

index 3ac8ecad2e53ad45427ce9c197ec30f70c196dd5..7a1a6c68d7324ee96bcd93e6b70aae325d9982e7 100644 (file)
@@ -3989,8 +3989,9 @@ static int _nfs4_server_capabilities(struct nfs_server *server, struct nfs_fh *f
                                     res.attr_bitmask[2];
                }
                memcpy(server->attr_bitmask, res.attr_bitmask, sizeof(server->attr_bitmask));
-               server->caps &= ~(NFS_CAP_ACLS | NFS_CAP_HARDLINKS |
-                                 NFS_CAP_SYMLINKS| NFS_CAP_SECURITY_LABEL);
+               server->caps &=
+                       ~(NFS_CAP_ACLS | NFS_CAP_HARDLINKS | NFS_CAP_SYMLINKS |
+                         NFS_CAP_SECURITY_LABEL | NFS_CAP_FS_LOCATIONS);
                server->fattr_valid = NFS_ATTR_FATTR_V4;
                if (res.attr_bitmask[0] & FATTR4_WORD0_ACL &&
                                res.acl_bitmask & ACL4_SUPPORT_ALLOW_ACL)