mirror of
				https://git.proxmox.com/git/mirror_zfs.git
				synced 2025-10-26 18:05:04 +03:00 
			
		
		
		
	linux 6.2 compat: get_acl() got moved to get_inode_acl() in 6.2
Linux 6.2 renamed the get_acl() operation to get_inode_acl() in the inode_operations struct. This should fix Issue #14323. Reviewed-by: Richard Yao <richard.yao@alumni.stonybrook.edu> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: Tony Hutter <hutter2@llnl.gov> Signed-off-by: Coleman Kane <ckane@colemankane.org> Closes #14323 Closes #14331
This commit is contained in:
		
							parent
							
								
									138d2b29dd
								
							
						
					
					
						commit
						b586ea5d93
					
				| @ -189,6 +189,18 @@ AC_DEFUN([ZFS_AC_KERNEL_SRC_INODE_OPERATIONS_GET_ACL], [ | ||||
| 			.get_acl = get_acl_fn, | ||||
| 		}; | ||||
| 	],[]) | ||||
| 
 | ||||
| 	ZFS_LINUX_TEST_SRC([inode_operations_get_inode_acl], [ | ||||
| 		#include <linux/fs.h> | ||||
| 
 | ||||
| 		struct posix_acl *get_inode_acl_fn(struct inode *inode, int type, | ||||
| 		    bool rcu) { return NULL; } | ||||
| 
 | ||||
| 		static const struct inode_operations | ||||
| 		    iops __attribute__ ((unused)) = { | ||||
| 			.get_inode_acl = get_inode_acl_fn, | ||||
| 		}; | ||||
| 	],[]) | ||||
| ]) | ||||
| 
 | ||||
| AC_DEFUN([ZFS_AC_KERNEL_INODE_OPERATIONS_GET_ACL], [ | ||||
| @ -201,7 +213,12 @@ AC_DEFUN([ZFS_AC_KERNEL_INODE_OPERATIONS_GET_ACL], [ | ||||
| 			AC_MSG_RESULT(yes) | ||||
| 			AC_DEFINE(HAVE_GET_ACL_RCU, 1, [iops->get_acl() takes rcu]) | ||||
| 		],[ | ||||
| 			ZFS_LINUX_TEST_ERROR([iops->get_acl()]) | ||||
| 			ZFS_LINUX_TEST_RESULT([inode_operations_get_inode_acl], [ | ||||
| 				AC_MSG_RESULT(yes) | ||||
| 				AC_DEFINE(HAVE_GET_INODE_ACL, 1, [has iops->get_inode_acl()]) | ||||
| 			],[ | ||||
| 				ZFS_LINUX_TEST_ERROR([iops->get_acl() or iops->get_inode_acl()]) | ||||
| 			]) | ||||
| 		]) | ||||
| 	]) | ||||
| ]) | ||||
|  | ||||
| @ -71,7 +71,7 @@ extern int zpl_set_acl(struct user_namespace *userns, struct inode *ip, | ||||
| extern int zpl_set_acl(struct inode *ip, struct posix_acl *acl, int type); | ||||
| #endif /* HAVE_SET_ACL_USERNS */ | ||||
| #endif /* HAVE_SET_ACL */ | ||||
| #if defined(HAVE_GET_ACL_RCU) | ||||
| #if defined(HAVE_GET_ACL_RCU) || defined(HAVE_GET_INODE_ACL) | ||||
| extern struct posix_acl *zpl_get_acl(struct inode *ip, int type, bool rcu); | ||||
| #elif defined(HAVE_GET_ACL) | ||||
| extern struct posix_acl *zpl_get_acl(struct inode *ip, int type); | ||||
|  | ||||
| @ -726,7 +726,11 @@ const struct inode_operations zpl_inode_operations = { | ||||
| #if defined(HAVE_SET_ACL) | ||||
| 	.set_acl	= zpl_set_acl, | ||||
| #endif /* HAVE_SET_ACL */ | ||||
| #if defined(HAVE_GET_INODE_ACL) | ||||
| 	.get_inode_acl	= zpl_get_acl, | ||||
| #else | ||||
| 	.get_acl	= zpl_get_acl, | ||||
| #endif /* HAVE_GET_INODE_ACL */ | ||||
| #endif /* CONFIG_FS_POSIX_ACL */ | ||||
| }; | ||||
| 
 | ||||
| @ -759,7 +763,11 @@ const struct inode_operations zpl_dir_inode_operations = { | ||||
| #if defined(HAVE_SET_ACL) | ||||
| 	.set_acl	= zpl_set_acl, | ||||
| #endif /* HAVE_SET_ACL */ | ||||
| #if defined(HAVE_GET_INODE_ACL) | ||||
| 	.get_inode_acl	= zpl_get_acl, | ||||
| #else | ||||
| 	.get_acl	= zpl_get_acl, | ||||
| #endif /* HAVE_GET_INODE_ACL */ | ||||
| #endif /* CONFIG_FS_POSIX_ACL */ | ||||
| }; | ||||
| 
 | ||||
| @ -798,6 +806,10 @@ const struct inode_operations zpl_special_inode_operations = { | ||||
| #if defined(HAVE_SET_ACL) | ||||
| 	.set_acl	= zpl_set_acl, | ||||
| #endif /* HAVE_SET_ACL */ | ||||
| #if defined(HAVE_GET_INODE_ACL) | ||||
| 	.get_inode_acl	= zpl_get_acl, | ||||
| #else | ||||
| 	.get_acl	= zpl_get_acl, | ||||
| #endif /* HAVE_GET_INODE_ACL */ | ||||
| #endif /* CONFIG_FS_POSIX_ACL */ | ||||
| }; | ||||
|  | ||||
| @ -1067,7 +1067,7 @@ zpl_get_acl_impl(struct inode *ip, int type) | ||||
| 	return (acl); | ||||
| } | ||||
| 
 | ||||
| #if defined(HAVE_GET_ACL_RCU) | ||||
| #if defined(HAVE_GET_ACL_RCU) || defined(HAVE_GET_INODE_ACL) | ||||
| struct posix_acl * | ||||
| zpl_get_acl(struct inode *ip, int type, bool rcu) | ||||
| { | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Coleman Kane
						Coleman Kane