Commit 9acb237d authored by Olga Kornievskaia's avatar Olga Kornievskaia Committed by Trond Myklebust
Browse files

NFSv4.2: another fix for listxattr



Currently, when the server supports NFS4.1 security labels then
security.selinux label in included twice. Instead, only add it
when the server doesn't possess security label support.

Fixes: 243fea13 ("NFSv4.2: fix listxattr to return selinux security label")
Signed-off-by: default avatarOlga Kornievskaia <okorniev@redhat.com>
Link: https://lore.kernel.org/r/20250722205641.79394-1-okorniev@redhat.com


Signed-off-by: default avatarTrond Myklebust <trond.myklebust@hammerspace.com>
parent ef93a685
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -10883,7 +10883,7 @@ const struct nfs4_minor_version_ops *nfs_v4_minor_ops[] = {

static ssize_t nfs4_listxattr(struct dentry *dentry, char *list, size_t size)
{
	ssize_t error, error2, error3, error4;
	ssize_t error, error2, error3, error4 = 0;
	size_t left = size;

	error = generic_listxattr(dentry, list, left);
@@ -10911,9 +10911,11 @@ static ssize_t nfs4_listxattr(struct dentry *dentry, char *list, size_t size)
		left -= error3;
	}

	if (!nfs_server_capable(d_inode(dentry), NFS_CAP_SECURITY_LABEL)) {
		error4 = security_inode_listsecurity(d_inode(dentry), list, left);
		if (error4 < 0)
			return error4;
	}

	error += error2 + error3 + error4;
	if (size && error > size)