diff --git a/kmod/src/Makefile.kernelcompat b/kmod/src/Makefile.kernelcompat index f6ab5099..ed215c1d 100644 --- a/kmod/src/Makefile.kernelcompat +++ b/kmod/src/Makefile.kernelcompat @@ -6,18 +6,6 @@ ccflags-y += -include $(src)/kernelcompat.h -# -# rhel7 has a custom inode_operations_wrapper struct that is discarded -# entirely in favor of upstream structure since rhel8. -# -ifneq (,$(shell grep 'void.*follow_link.*struct dentry' include/linux/fs.h)) -ccflags-y += -DKC_LINUX_HAVE_RHEL_IOPS_WRAPPER=1 -endif - -ifneq (,$(shell grep 'size_t.*ki_left;' include/linux/aio.h)) -ccflags-y += -DKC_LINUX_AIO_KI_LEFT=1 -endif - # # v4.4-rc4-4-g98e9cb5711c6 # diff --git a/kmod/src/dir.c b/kmod/src/dir.c index 993bb3a7..6ac65f65 100644 --- a/kmod/src/dir.c +++ b/kmod/src/dir.c @@ -1187,24 +1187,6 @@ out: return path; } -#ifdef KC_LINUX_HAVE_RHEL_IOPS_WRAPPER -static void *scoutfs_follow_link(struct dentry *dentry, struct nameidata *nd) -{ - char *path; - - path = scoutfs_get_link_target(dentry); - if (!IS_ERR_OR_NULL(path)) - nd_set_link(nd, path); - return path; -} - -static void scoutfs_put_link(struct dentry *dentry, struct nameidata *nd, - void *cookie) -{ - if (!IS_ERR_OR_NULL(cookie)) - kfree(cookie); -} -#else static const char *scoutfs_get_link(struct dentry *dentry, struct inode *inode, struct delayed_call *done) { char *path; @@ -1215,7 +1197,6 @@ static const char *scoutfs_get_link(struct dentry *dentry, struct inode *inode, return path; } -#endif /* * Symlink target paths can be annoyingly large. We store relatively @@ -1882,15 +1863,6 @@ out_unlock: return ret; } -#ifdef KC_LINUX_HAVE_RHEL_IOPS_WRAPPER -static int scoutfs_rename(struct inode *old_dir, - struct dentry *old_dentry, struct inode *new_dir, - struct dentry *new_dentry) -{ - return scoutfs_rename_common(KC_VFS_INIT_NS - old_dir, old_dentry, new_dir, new_dentry, 0); -} -#endif static int scoutfs_rename2(KC_VFS_NS_DEF struct inode *old_dir, @@ -1973,29 +1945,15 @@ out: } const struct inode_operations scoutfs_symlink_iops = { -#ifdef KC_LINUX_HAVE_RHEL_IOPS_WRAPPER - .readlink = generic_readlink, - .follow_link = scoutfs_follow_link, - .put_link = scoutfs_put_link, -#else .get_link = scoutfs_get_link, -#endif .getattr = scoutfs_getattr, .setattr = scoutfs_setattr, -#ifdef KC_LINUX_HAVE_RHEL_IOPS_WRAPPER - .setxattr = generic_setxattr, - .getxattr = generic_getxattr, -#endif .listxattr = scoutfs_listxattr, -#ifdef KC_LINUX_HAVE_RHEL_IOPS_WRAPPER - .removexattr = generic_removexattr, -#endif #ifdef KC_GET_INODE_ACL .get_inode_acl = scoutfs_get_acl, #else .get_acl = scoutfs_get_acl, #endif -#ifndef KC_LINUX_HAVE_RHEL_IOPS_WRAPPER .tmpfile = scoutfs_tmpfile, .rename = scoutfs_rename_common, .symlink = scoutfs_symlink, @@ -2004,7 +1962,6 @@ const struct inode_operations scoutfs_symlink_iops = { .mkdir = scoutfs_mkdir, .create = scoutfs_create, .lookup = scoutfs_lookup, -#endif }; const struct file_operations scoutfs_dir_fops = { @@ -2015,12 +1972,7 @@ const struct file_operations scoutfs_dir_fops = { }; -#ifdef KC_LINUX_HAVE_RHEL_IOPS_WRAPPER -const struct inode_operations_wrapper scoutfs_dir_iops = { - .ops = { -#else const struct inode_operations scoutfs_dir_iops = { -#endif .lookup = scoutfs_lookup, .mknod = scoutfs_mknod, .create = scoutfs_create, @@ -2030,12 +1982,6 @@ const struct inode_operations scoutfs_dir_iops = { .rmdir = scoutfs_unlink, .getattr = scoutfs_getattr, .setattr = scoutfs_setattr, -#ifdef KC_LINUX_HAVE_RHEL_IOPS_WRAPPER - .rename = scoutfs_rename, - .setxattr = generic_setxattr, - .getxattr = generic_getxattr, - .removexattr = generic_removexattr, -#endif .listxattr = scoutfs_listxattr, #ifdef KC_GET_INODE_ACL .get_inode_acl = scoutfs_get_acl, @@ -2047,13 +1993,6 @@ const struct inode_operations scoutfs_dir_iops = { #endif .symlink = scoutfs_symlink, .permission = scoutfs_permission, -#ifdef KC_LINUX_HAVE_RHEL_IOPS_WRAPPER - }, -#endif .tmpfile = scoutfs_tmpfile, -#ifdef KC_LINUX_HAVE_RHEL_IOPS_WRAPPER - .rename2 = scoutfs_rename2, -#else .rename = scoutfs_rename2, -#endif }; diff --git a/kmod/src/dir.h b/kmod/src/dir.h index 9985b7c3..1c65caf5 100644 --- a/kmod/src/dir.h +++ b/kmod/src/dir.h @@ -5,11 +5,7 @@ #include "lock.h" extern const struct file_operations scoutfs_dir_fops; -#ifdef KC_LINUX_HAVE_RHEL_IOPS_WRAPPER -extern const struct inode_operations_wrapper scoutfs_dir_iops; -#else extern const struct inode_operations scoutfs_dir_iops; -#endif extern const struct inode_operations scoutfs_symlink_iops; extern const struct dentry_operations scoutfs_dentry_ops; diff --git a/kmod/src/inode.c b/kmod/src/inode.c index 3c87353d..3c75fc98 100644 --- a/kmod/src/inode.c +++ b/kmod/src/inode.c @@ -144,11 +144,6 @@ void scoutfs_destroy_inode(struct inode *inode) static const struct inode_operations scoutfs_file_iops = { .getattr = scoutfs_getattr, .setattr = scoutfs_setattr, -#ifdef KC_LINUX_HAVE_RHEL_IOPS_WRAPPER - .setxattr = generic_setxattr, - .getxattr = generic_getxattr, - .removexattr = generic_removexattr, -#endif .listxattr = scoutfs_listxattr, #ifdef KC_GET_INODE_ACL .get_inode_acl = scoutfs_get_acl, @@ -164,11 +159,6 @@ static const struct inode_operations scoutfs_file_iops = { static const struct inode_operations scoutfs_special_iops = { .getattr = scoutfs_getattr, .setattr = scoutfs_setattr, -#ifdef KC_LINUX_HAVE_RHEL_IOPS_WRAPPER - .setxattr = generic_setxattr, - .getxattr = generic_getxattr, - .removexattr = generic_removexattr, -#endif .listxattr = scoutfs_listxattr, #ifdef KC_GET_INODE_ACL .get_inode_acl = scoutfs_get_acl, @@ -193,12 +183,7 @@ static void set_inode_ops(struct inode *inode) inode->i_fop = &scoutfs_file_fops; break; case S_IFDIR: -#ifdef KC_LINUX_HAVE_RHEL_IOPS_WRAPPER - inode->i_op = &scoutfs_dir_iops.ops; - inode->i_flags |= S_IOPS_WRAPPER; -#else inode->i_op = &scoutfs_dir_iops; -#endif inode->i_fop = &scoutfs_dir_fops; break; case S_IFLNK: @@ -382,18 +367,11 @@ int scoutfs_inode_refresh(struct inode *inode, struct scoutfs_lock *lock) return ret; } -#ifdef KC_LINUX_HAVE_RHEL_IOPS_WRAPPER -int scoutfs_getattr(struct vfsmount *mnt, struct dentry *dentry, - struct kstat *stat) -{ - struct inode *inode = dentry->d_inode; -#else int scoutfs_getattr(KC_VFS_NS_DEF const struct path *path, struct kstat *stat, u32 request_mask, unsigned int query_flags) { struct inode *inode = d_inode(path->dentry); -#endif struct super_block *sb = inode->i_sb; struct scoutfs_lock *lock = NULL; int ret; diff --git a/kmod/src/inode.h b/kmod/src/inode.h index b5d57802..2c390908 100644 --- a/kmod/src/inode.h +++ b/kmod/src/inode.h @@ -131,14 +131,9 @@ int scoutfs_complete_truncate(struct inode *inode, struct scoutfs_lock *lock); int scoutfs_inode_check_retention(struct inode *inode); int scoutfs_inode_refresh(struct inode *inode, struct scoutfs_lock *lock); -#ifdef KC_LINUX_HAVE_RHEL_IOPS_WRAPPER -int scoutfs_getattr(struct vfsmount *mnt, struct dentry *dentry, - struct kstat *stat); -#else int scoutfs_getattr(KC_VFS_NS_DEF const struct path *path, struct kstat *stat, u32 request_mask, unsigned int query_flags); -#endif int scoutfs_setattr(KC_VFS_NS_DEF struct dentry *dentry, struct iattr *attr); diff --git a/kmod/src/ioctl.c b/kmod/src/ioctl.c index 5a9622f2..903033be 100644 --- a/kmod/src/ioctl.c +++ b/kmod/src/ioctl.c @@ -515,10 +515,6 @@ static long scoutfs_ioc_stage(struct file *file, unsigned long arg) /* the iocb is really only used for the file pointer :P */ init_sync_kiocb(&kiocb, file); kiocb.ki_pos = args.offset; -#ifdef KC_LINUX_AIO_KI_LEFT - kiocb.ki_left = args.length; - kiocb.ki_nbytes = args.length; -#endif iov.iov_base = (void __user *)(unsigned long)args.buf_ptr; iov.iov_len = args.length;