Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5f13ee9c authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Linus Torvalds
Browse files

nfs: fix xattr inode op pointers when disabled



Chris Mason reported a NULL pointer derefernence in generic_getxattr()
that was due to sb->s_xattr being NULL.

The reason is that the nfs #ifdef's for ACL support were misplaced, and
the nfs3 inode operations had the xattr operation pointers set up, even
though xattrs were not actually supported.  As a result, the xattr code
was being called without the infrastructure having been set up.

Move the #ifdef's appropriately.

Reported-and-tested-by: default avatarChris Mason <clm@fb.com>
Acked-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 9b0cd304
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -924,11 +924,11 @@ static const struct inode_operations nfs3_dir_inode_operations = {
	.permission	= nfs_permission,
	.getattr	= nfs_getattr,
	.setattr	= nfs_setattr,
#ifdef CONFIG_NFS_V3_ACL
	.listxattr	= generic_listxattr,
	.getxattr	= generic_getxattr,
	.setxattr	= generic_setxattr,
	.removexattr	= generic_removexattr,
#ifdef CONFIG_NFS_V3_ACL
	.get_acl	= nfs3_get_acl,
	.set_acl	= nfs3_set_acl,
#endif
@@ -938,11 +938,11 @@ static const struct inode_operations nfs3_file_inode_operations = {
	.permission	= nfs_permission,
	.getattr	= nfs_getattr,
	.setattr	= nfs_setattr,
#ifdef CONFIG_NFS_V3_ACL
	.listxattr	= generic_listxattr,
	.getxattr	= generic_getxattr,
	.setxattr	= generic_setxattr,
	.removexattr	= generic_removexattr,
#ifdef CONFIG_NFS_V3_ACL
	.get_acl	= nfs3_get_acl,
	.set_acl	= nfs3_set_acl,
#endif