mirror_zfs/config
Brian Behlendorf 0ee129199f RHEL 7.5 compat: FMODE_KABI_ITERATE
As of RHEL 7.5 the mainline fops.iterate() method was added to
the file_operations structure and is correctly detected by the
configure script.

Normally this is what we want, but in order to maintain KABI
compatibility the RHEL change additionally does the following:

* Requires that callers intending to use this extended interface
  set the FMODE_KABI_ITERATE flag on the file structure when
  opening the directory.
* Adds the fops.iterate() method to the end of the structure,
  without removing fops.readdir().

This change updates the configure check to ignore the RHEL 7.5+
variant of fops.iterate() when detected.  Instead fallback to
the fops.readdir() interface which will be available.

Finally, add the 'zpl_' prefix to the directory context wrappers
to avoid colliding with the kernel provided symbols when both
the fops.iterate() and fops.readdir() are provided by the kernel.

Reviewed-by: Olaf Faaland <faaland1@llnl.gov>
Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #7460
Closes #7463
2018-05-07 17:19:57 -07:00
..
.gitignore
always-arch.m4
always-no-bool-compare.m4
always-no-unused-but-set-variable.m4
ax_code_coverage.m4 Fix "--enable-code-coverage" debug build 2018-03-14 16:10:36 -07:00
config.awk
deb.am Fix config issues: frame size and headers 2018-03-14 16:10:37 -07:00
kernel-acl-refcount.m4 Linux 4.16 compat: use correct *_dec_and_test() 2018-03-14 16:10:37 -07:00
kernel-acl.m4 Fix config issues: frame size and headers 2018-03-14 16:10:37 -07:00
kernel-aio-fsync.m4 Kernel 4.9 compat: file_operations->aio_fsync removal 2016-11-15 09:20:46 -08:00
kernel-automount.m4
kernel-bdev-block-device-operations.m4
kernel-bdev-logical-size.m4
kernel-bdev-physical-size.m4
kernel-bdi.m4 Fix autoconf detection of super_setup_bdi_name 2017-07-25 10:30:20 -07:00
kernel-bio_set_dev.m4 Linux 4.14 compat: IO acct, global_page_state, etc (#6655) 2017-09-19 14:24:34 -07:00
kernel-bio-bvec-iter.m4
kernel-bio-end-io-t-args.m4 Linux 4.13 compat: bio->bi_status and blk_status_t 2017-07-23 19:37:12 -07:00
kernel-bio-failfast.m4
kernel-bio-op.m4 Fix RHEL 7.4 bio_set_op_attrs build error 2017-06-27 12:00:27 -07:00
kernel-bio-rw-barrier.m4
kernel-bio-rw-discard.m4
kernel-blk-queue-bdi.m4 Enable Linux read-ahead for a single page on ZVOLs 2017-05-04 18:00:27 -04:00
kernel-blk-queue-flags.m4 Linux compat 4.16: blk_queue_flag_{set,clear} 2018-05-07 17:19:57 -07:00
kernel-blk-queue-flush.m4
kernel-blk-queue-max-hw-sectors.m4
kernel-blk-queue-max-segments.m4
kernel-blk-queue-unplug.m4 Explicit block device plugging when submitting multiple BIOs 2016-09-29 13:13:31 -07:00
kernel-blkdev-get-by-path.m4
kernel-blkdev-get.m4
kernel-block-device-operations-release-void.m4
kernel-clear-inode.m4
kernel-commit-metadata.m4
kernel-create-nameidata.m4 Fix config issues: frame size and headers 2018-03-14 16:10:37 -07:00
kernel-current_bio_tail.m4
kernel-current-time.m4 Linux 4.12 compat: CURRENT_TIME removed 2017-05-10 09:30:48 -07:00
kernel-d-make-root.m4
kernel-d-obtain-alias.m4
kernel-d-prune-aliases.m4
kernel-declare-event-class.m4
kernel-dentry-operations.m4 Fix config issues: frame size and headers 2018-03-14 16:10:37 -07:00
kernel-dirty-inode.m4
kernel-discard-granularity.m4
kernel-elevator-change.m4
kernel-encode-fh-inode.m4
kernel-evict-inode.m4
kernel-fallocate.m4
kernel-file-dentry.m4
kernel-file-inode.m4
kernel-fmode-t.m4
kernel-follow-down-one.m4
kernel-fpu.m4
kernel-fst-mount.m4 Allow mounting datasets more than once 2018-05-07 17:19:57 -07:00
kernel-fsync.m4
kernel-generic_io_acct.m4 Linux 4.14 compat: IO acct, global_page_state, etc (#6655) 2017-09-19 14:24:34 -07:00
kernel-generic_readlink.m4 4.10 compat - BIO flag changes and others 2016-12-30 16:03:59 -06:00
kernel-get-disk-and-module.m4 Linux 4.16 compat: get_disk_and_module() 2018-03-14 16:10:38 -07:00
kernel-get-disk-ro.m4
kernel-get-gendisk.m4
kernel-get-link.m4 Fix config issues: frame size and headers 2018-03-14 16:10:37 -07:00
kernel-global_page_state.m4 Fix free memory calculation on v3.14+ 2018-03-14 16:10:37 -07:00
kernel-inode-getattr.m4 Linux 4.11 compat: iops.getattr and friends 2017-03-20 17:51:16 -07:00
kernel-inode-set-flags.m4 Use inode_set_flags when available 2016-12-16 13:54:51 -08:00
kernel-inode-set-iversion.m4 Linux 4.16 compat: inode_set_iversion() 2018-03-14 16:10:36 -07:00
kernel-insert-inode-locked.m4
kernel-invalidate-bdev-args.m4
kernel-is_owner_or_cap.m4
kernel-kmap-atomic-args.m4
kernel-kuid-helpers.m4
kernel-lookup-bdev.m4 Fix lookup_bdev() on Ubuntu 2016-10-26 10:30:43 -07:00
kernel-lookup-nameidata.m4 Fix config issues: frame size and headers 2018-03-14 16:10:37 -07:00
kernel-lseek-execute.m4
kernel-mk-request-fn.m4
kernel-mkdir-umode-t.m4 Fix spelling 2017-01-03 11:31:18 -06:00
kernel-mod-param.m4 Linux compat: Grsecurity kernel 2016-08-22 10:05:45 -07:00
kernel-objtool.m4 [icp] fpu and asm cleanup for linux 2017-03-07 12:59:31 -08:00
kernel-open-bdev-exclusive.m4
kernel-put-link.m4
kernel-rename.m4 Linux 4.9 compat: iops->rename() wants flags 2016-10-20 09:39:09 -07:00
kernel-security-inode-init.m4
kernel-set-nlink.m4
kernel-setattr-prepare.m4 Linux 4.9 compat: inode_change_ok() renamed setattr_prepare() 2016-10-20 09:39:09 -07:00
kernel-sget-args.m4
kernel-show-options.m4
kernel-shrink.m4
kernel-submit_bio.m4
kernel-super-userns.m4
kernel-tmpfile.m4 Add support for O_TMPFILE 2016-11-04 10:46:40 -07:00
kernel-truncate-range.m4
kernel-truncate-setsize.m4
kernel-userns-capabilities.m4 Take user namespaces into account in policy checks 2018-03-14 16:10:38 -07:00
kernel-vfs-iterate.m4 RHEL 7.5 compat: FMODE_KABI_ITERATE 2018-05-07 17:19:57 -07:00
kernel-vfs-rw-iterate.m4 Fix incompatibility with Reiser4 patched kernels 2018-01-30 10:27:31 -06:00
kernel-xattr-handler.m4 Fix spelling 2017-01-03 11:31:18 -06:00
kernel.m4 Allow mounting datasets more than once 2018-05-07 17:19:57 -07:00
mount-helper.m4
rpm.am
Rules.am Add support for "--enable-code-coverage" option 2018-03-14 16:10:36 -07:00
suppressed-warnings.txt
tgz.am Fix config issues: frame size and headers 2018-03-14 16:10:37 -07:00
toolchain-simd.m4 Add support for AVX-512 family of instruction sets 2016-08-16 14:10:33 -07:00
user-dracut.m4
user-frame-larger-than.m4
user-libaio.m4 Fix mmap / libaio deadlock 2018-05-07 17:19:57 -07:00
user-libblkid.m4 Fix config issues: frame size and headers 2018-03-14 16:10:37 -07:00
user-libtirpc.m4
user-libudev.m4
user-libuuid.m4
user-makedev.m4 glibc 2.5 compat: use correct header for makedev() et al. 2017-03-31 09:32:00 -07:00
user-no-format-truncation.m4 GCC 7.1 fixes 2017-06-28 10:05:16 -07:00
user-runstatedir.m4
user-systemd.m4 Fix --with-systemd on Debian-based distributions (#6963) 2018-03-14 16:10:36 -07:00
user-sysvinit.m4
user-udev.m4
user-zlib.m4
user.m4 Fix mmap / libaio deadlock 2018-05-07 17:19:57 -07:00
zfs-build.m4 Fix mmap / libaio deadlock 2018-05-07 17:19:57 -07:00
zfs-meta.m4 Fix automatically generated release number 2016-09-21 13:45:21 -07:00