mirror_zfs/config
Brian Behlendorf 218b4e0a76 Add zfs_sb_prune_aliases() function
For kernels which do not implement a per-suberblock shrinker,
those older than Linux 3.1, the shrink_dcache_parent() function
was used to attempt to reclaim dentries.  This was found not be
entirely reliable and could lead to performance issues on older
kernels running meta-data heavy workloads.

To address this issue a zfs_sb_prune_aliases() function has been
added to implement this functionality.  It relies on traversing
the list of znodes for a filesystem and adding them to a private
list with a reference held.  The private list can then be safely
walked outside the z_znodes_lock to prune dentires and drop the
last reference so the inode can be freed.

This provides the same synchronous behavior as the per-filesystem
shrinker and has the advantage of depending on only long standing
interfaces.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Tim Chase <tim@chase2k.com>
Closes #3501
2015-06-22 10:22:49 -07:00
..
.gitignore Add config/compile to config/.gitignore 2014-10-31 16:25:34 -07:00
always-no-unused-but-set-variable.m4
config.awk
deb.am Move the libraries into separate packages 2014-06-02 13:43:20 -07:00
kernel-acl.m4 Make license compatibility checks consistent 2014-10-17 14:58:38 -07:00
kernel-automount.m4
kernel-bdev-block-device-operations.m4
kernel-bdev-logical-size.m4
kernel-bdev-physical-size.m4
kernel-bdi-setup-and-register.m4 Linux 4.0 compat: bdi_setup_and_register() __must_check 2015-03-16 10:56:26 -07:00
kernel-bio-bvec-iter.m4
kernel-bio-end-io-t-args.m4
kernel-bio-failfast.m4 Linux 2.6.36 compat, use REQ_FAILFAST_MASK and remove pre-2.6.36 support 2015-05-11 15:07:00 -07:00
kernel-bio-rw-syncio.m4
kernel-blk-end-request.m4 Make license compatibility checks consistent 2014-10-17 14:58:38 -07:00
kernel-blk-fetch-request.m4
kernel-blk-queue-discard.m4
kernel-blk-queue-flush.m4 Make license compatibility checks consistent 2014-10-17 14:58:38 -07:00
kernel-blk-queue-io-opt.m4
kernel-blk-queue-max-hw-sectors.m4
kernel-blk-queue-max-segments.m4
kernel-blk-queue-nonrot.m4
kernel-blk-queue-physical-block-size.m4
kernel-blk-requeue-request.m4
kernel-blk-rq-bytes.m4 Make license compatibility checks consistent 2014-10-17 14:58:38 -07:00
kernel-blk-rq-pos.m4
kernel-blk-rq-sectors.m4
kernel-blkdev-get-by-path.m4
kernel-blkdev-get.m4
kernel-block-device-operations-release-void.m4
kernel-check-disk-size-change.m4
kernel-clear-inode.m4
kernel-commit-metadata.m4
kernel-create-nameidata.m4
kernel-d-make-root.m4
kernel-d-obtain-alias.m4
kernel-d-prune-aliases.m4 Add zfs_sb_prune_aliases() function 2015-06-22 10:22:49 -07:00
kernel-declare-event-class.m4 Swap DTRACE_PROBE* with Linux tracepoints 2014-11-17 11:13:55 -08:00
kernel-dentry-operations.m4
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-inode.m4 Linux 3.19 compat: file_inode was added 2015-02-10 11:24:51 -08:00
kernel-fmode-t.m4
kernel-fsync.m4
kernel-get-disk-ro.m4
kernel-get-gendisk.m4
kernel-insert-inode-locked.m4
kernel-invalidate-bdev-args.m4
kernel-is_owner_or_cap.m4
kernel-kobj-name-len.m4
kernel-lookup-bdev.m4
kernel-lookup-nameidata.m4
kernel-lseek-execute.m4
kernel-mkdir-umode-t.m4
kernel-mount-nodev.m4
kernel-open-bdev-exclusive.m4
kernel-rq-for-each_segment.m4
kernel-rq-is_sync.m4
kernel-security-inode-init.m4
kernel-set-nlink.m4
kernel-sget-args.m4
kernel-show-options.m4
kernel-shrink.m4 3.12 compat, NUMA-aware per-superblock shrinker 2015-06-17 10:43:13 -07:00
kernel-truncate-range.m4
kernel-truncate-setsize.m4
kernel-vfs-iterate.m4
kernel-vfs-rw-iterate.m4 Linux 4.1 compat: use read_iter() / write_iter() 2015-06-18 12:06:59 -07:00
kernel-xattr-handler.m4
kernel.m4 Add zfs_sb_prune_aliases() function 2015-06-22 10:22:49 -07:00
mount-helper.m4 The mount helper mount.zfs MUST be in /sbin (not '$sbindir'). 2015-05-18 16:54:36 -07:00
rpm.am Set LANG to a reasonable default (C) 2014-06-10 16:46:21 -07:00
Rules.am Revert "Disable GCCs aggressive loop optimization" 2014-07-22 09:56:55 -07:00
suppressed-warnings.txt
tgz.am
user-arch.m4
user-dracut.m4 Accept udev and dracut paths specified by ./configure 2014-06-11 16:32:57 -07:00
user-frame-larger-than.m4
user-libblkid.m4
user-libuuid.m4
user-runstatedir.m4
user-systemd.m4 Make systemd-modules-load.service file directory configurable 2014-10-28 09:41:14 -07:00
user-sysvinit.m4
user-udev.m4 Accept udev and dracut paths specified by ./configure 2014-06-11 16:32:57 -07:00
user-zlib.m4
user.m4 Make directory into which mount.zfs is installed configurable 2014-10-28 09:40:59 -07:00
zfs-build.m4 Base init scripts for SYSV systems 2015-05-28 14:14:53 -07:00
zfs-meta.m4