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, | 			.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], [ | 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_MSG_RESULT(yes) | ||||||
| 			AC_DEFINE(HAVE_GET_ACL_RCU, 1, [iops->get_acl() takes rcu]) | 			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); | extern int zpl_set_acl(struct inode *ip, struct posix_acl *acl, int type); | ||||||
| #endif /* HAVE_SET_ACL_USERNS */ | #endif /* HAVE_SET_ACL_USERNS */ | ||||||
| #endif /* HAVE_SET_ACL */ | #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); | extern struct posix_acl *zpl_get_acl(struct inode *ip, int type, bool rcu); | ||||||
| #elif defined(HAVE_GET_ACL) | #elif defined(HAVE_GET_ACL) | ||||||
| extern struct posix_acl *zpl_get_acl(struct inode *ip, int type); | 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) | #if defined(HAVE_SET_ACL) | ||||||
| 	.set_acl	= zpl_set_acl, | 	.set_acl	= zpl_set_acl, | ||||||
| #endif /* HAVE_SET_ACL */ | #endif /* HAVE_SET_ACL */ | ||||||
|  | #if defined(HAVE_GET_INODE_ACL) | ||||||
|  | 	.get_inode_acl	= zpl_get_acl, | ||||||
|  | #else | ||||||
| 	.get_acl	= zpl_get_acl, | 	.get_acl	= zpl_get_acl, | ||||||
|  | #endif /* HAVE_GET_INODE_ACL */ | ||||||
| #endif /* CONFIG_FS_POSIX_ACL */ | #endif /* CONFIG_FS_POSIX_ACL */ | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| @ -759,7 +763,11 @@ const struct inode_operations zpl_dir_inode_operations = { | |||||||
| #if defined(HAVE_SET_ACL) | #if defined(HAVE_SET_ACL) | ||||||
| 	.set_acl	= zpl_set_acl, | 	.set_acl	= zpl_set_acl, | ||||||
| #endif /* HAVE_SET_ACL */ | #endif /* HAVE_SET_ACL */ | ||||||
|  | #if defined(HAVE_GET_INODE_ACL) | ||||||
|  | 	.get_inode_acl	= zpl_get_acl, | ||||||
|  | #else | ||||||
| 	.get_acl	= zpl_get_acl, | 	.get_acl	= zpl_get_acl, | ||||||
|  | #endif /* HAVE_GET_INODE_ACL */ | ||||||
| #endif /* CONFIG_FS_POSIX_ACL */ | #endif /* CONFIG_FS_POSIX_ACL */ | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| @ -798,6 +806,10 @@ const struct inode_operations zpl_special_inode_operations = { | |||||||
| #if defined(HAVE_SET_ACL) | #if defined(HAVE_SET_ACL) | ||||||
| 	.set_acl	= zpl_set_acl, | 	.set_acl	= zpl_set_acl, | ||||||
| #endif /* HAVE_SET_ACL */ | #endif /* HAVE_SET_ACL */ | ||||||
|  | #if defined(HAVE_GET_INODE_ACL) | ||||||
|  | 	.get_inode_acl	= zpl_get_acl, | ||||||
|  | #else | ||||||
| 	.get_acl	= zpl_get_acl, | 	.get_acl	= zpl_get_acl, | ||||||
|  | #endif /* HAVE_GET_INODE_ACL */ | ||||||
| #endif /* CONFIG_FS_POSIX_ACL */ | #endif /* CONFIG_FS_POSIX_ACL */ | ||||||
| }; | }; | ||||||
|  | |||||||
| @ -1067,7 +1067,7 @@ zpl_get_acl_impl(struct inode *ip, int type) | |||||||
| 	return (acl); | 	return (acl); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #if defined(HAVE_GET_ACL_RCU) | #if defined(HAVE_GET_ACL_RCU) || defined(HAVE_GET_INODE_ACL) | ||||||
| struct posix_acl * | struct posix_acl * | ||||||
| zpl_get_acl(struct inode *ip, int type, bool rcu) | zpl_get_acl(struct inode *ip, int type, bool rcu) | ||||||
| { | { | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Coleman Kane
						Coleman Kane