zfs/config
Etienne Dechamps d9b0ebbe82 Remove the bio_empty_barrier() check.
To determine whether the kernel is capable of handling empty barrier
BIOs, we check for the presence of the bio_empty_barrier() macro,
which was introduced in 2.6.24. If this macro is defined, then we can
flush disk vdevs; if it isn't, then flushing is disabled.

Unfortunately, the bio_empty_barrier() macro was removed in 2.6.37,
even though the kernel is still capable of handling empty barrier BIOs.

As a result, flushing is effectively disabled on kernels >= 2.6.37,
meaning that starting from this kernel version, zfs doesn't use
barriers to guarantee on-disk data consistency. This is quite bad and
can lead to potential data corruption on power failures.

This patch fixes the issue by removing the configure check for
bio_empty_barrier(), as we don't support kernels <= 2.6.24 anymore.

Thanks to Richard Kojedzinszky for catching this nasty bug.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #1318
2013-02-24 10:22:34 -08:00
..
.gitignore Remove autotools products 2012-08-27 11:47:44 -07:00
Rules.am Check for -Wno-unused-but-set-variable gcc support 2011-06-14 14:43:22 -07:00
always-no-unused-but-set-variable.m4 In autoconf v2.68, AC_LANG_PROGRAM must be quoted 2011-11-28 11:16:33 -08:00
arch.am Don't build packages that haven't been selected. 2012-07-26 13:39:37 -07:00
config.awk Add build system 2010-08-31 13:41:27 -07:00
deb.am Don't build packages that haven't been selected. 2012-07-26 13:39:37 -07:00
kernel-automount.m4 Fix snapshot automounting with GrSecurity constify plugin. 2012-08-24 08:56:38 -07:00
kernel-bdev-block-device-operations.m4 Only use gcc -Wunused-but-set-variable when available 2013-01-10 16:09:39 -08:00
kernel-bdev-logical-size.m4 Only use gcc -Wunused-but-set-variable when available 2013-01-10 16:09:39 -08:00
kernel-bdev-physical-size.m4 Only use gcc -Wunused-but-set-variable when available 2013-01-10 16:09:39 -08:00
kernel-bdi-setup-and-register.m4 When checking for symbol exports, try compiling. 2012-07-26 13:42:57 -07:00
kernel-bdi.m4 Add backing_device_info per-filesystem 2011-08-04 13:37:38 -07:00
kernel-bio-end-io-t-args.m4 Use -Werror for all kernel configure tests. 2013-02-24 10:20:28 -08:00
kernel-bio-failfast.m4 Fix gcc configure warnings 2011-04-19 10:10:47 -07:00
kernel-bio-rw-syncio.m4 Fix gcc configure warnings 2011-04-19 10:10:47 -07:00
kernel-blk-end-request.m4 Only use gcc -Wunused-but-set-variable when available 2013-01-10 16:09:39 -08:00
kernel-blk-fetch-request.m4 Only use gcc -Wunused-but-set-variable when available 2013-01-10 16:09:39 -08:00
kernel-blk-queue-discard.m4 Only use gcc -Wunused-but-set-variable when available 2013-01-10 16:09:39 -08:00
kernel-blk-queue-flush.m4 Only use gcc -Wunused-but-set-variable when available 2013-01-10 16:09:39 -08:00
kernel-blk-queue-io-opt.m4 Only use gcc -Wunused-but-set-variable when available 2013-01-10 16:09:39 -08:00
kernel-blk-queue-max-hw-sectors.m4 Only use gcc -Wunused-but-set-variable when available 2013-01-10 16:09:39 -08:00
kernel-blk-queue-max-segments.m4 Only use gcc -Wunused-but-set-variable when available 2013-01-10 16:09:39 -08:00
kernel-blk-queue-nonrot.m4 Only use gcc -Wunused-but-set-variable when available 2013-01-10 16:09:39 -08:00
kernel-blk-queue-physical-block-size.m4 Only use gcc -Wunused-but-set-variable when available 2013-01-10 16:09:39 -08:00
kernel-blk-requeue-request.m4 Only use gcc -Wunused-but-set-variable when available 2013-01-10 16:09:39 -08:00
kernel-blk-rq-bytes.m4 Only use gcc -Wunused-but-set-variable when available 2013-01-10 16:09:39 -08:00
kernel-blk-rq-pos.m4 Only use gcc -Wunused-but-set-variable when available 2013-01-10 16:09:39 -08:00
kernel-blk-rq-sectors.m4 Only use gcc -Wunused-but-set-variable when available 2013-01-10 16:09:39 -08:00
kernel-blkdev-get-by-path.m4 When checking for symbol exports, try compiling. 2012-07-26 13:42:57 -07:00
kernel-blkdev-get.m4 Move partition scanning from userspace to module. 2012-07-17 09:17:31 -07:00
kernel-check-disk-size-change.m4 When checking for symbol exports, try compiling. 2012-07-26 13:42:57 -07:00
kernel-clear-inode.m4 When checking for symbol exports, try compiling. 2012-07-26 13:42:57 -07:00
kernel-commit-metadata.m4 Implement .commit_metadata hook for NFS export 2012-10-03 10:49:45 -07:00
kernel-create-nameidata.m4 Linux 3.6 compat, iops->create() 2012-10-14 14:42:25 -07:00
kernel-d-make-root.m4 When checking for symbol exports, try compiling. 2012-07-26 13:42:57 -07:00
kernel-d-obtain-alias.m4 When checking for symbol exports, try compiling. 2012-07-26 13:42:57 -07:00
kernel-dentry-operations.m4 Use sb->s_d_op default dentry operations 2013-01-18 15:04:23 -08:00
kernel-dirty-inode.m4 Update SAs when an inode is dirtied 2012-12-14 12:18:54 -08:00
kernel-discard-granularity.m4 Set zvol discard_granularity to the volblocksize. 2012-08-07 14:55:31 -07:00
kernel-elevator-change.m4 Only use gcc -Wunused-but-set-variable when available 2013-01-10 16:09:39 -08:00
kernel-encode-fh-inode.m4 Linux 3.5 compat, eops->encode_fh() takes inodes 2012-07-23 12:29:23 -07:00
kernel-evict-inode.m4 Fix build failures on PaX/GRSecurity patched kernels 2012-07-17 09:22:43 -07:00
kernel-fallocate.m4 Fix build failures on PaX/GRSecurity patched kernels 2012-07-17 09:22:43 -07:00
kernel-fmode-t.m4 Fix gcc configure warnings 2011-04-19 10:10:47 -07:00
kernel-fsync.m4 Fix build failures on PaX/GRSecurity patched kernels 2012-07-17 09:22:43 -07:00
kernel-get-disk-ro.m4 Only use gcc -Wunused-but-set-variable when available 2013-01-10 16:09:39 -08:00
kernel-get-gendisk.m4 When checking for symbol exports, try compiling. 2012-07-26 13:42:57 -07:00
kernel-insert-inode-locked.m4 When checking for symbol exports, try compiling. 2012-07-26 13:42:57 -07:00
kernel-invalidate-bdev-args.m4 Fix gcc configure warnings 2011-04-19 10:10:47 -07:00
kernel-kobj-name-len.m4 Fix gcc configure warnings 2011-04-19 10:10:47 -07:00
kernel-lookup-bdev.m4 Linux 2.6.26 compat, lookup_bdev() 2013-01-28 15:35:00 -08:00
kernel-lookup-nameidata.m4 Linux 3.6 compat, iops->lookup() 2012-10-14 13:06:54 -07:00
kernel-mkdir-umode-t.m4 Linux 3.6 compat, iops->mkdir() 2012-10-14 15:29:26 -07:00
kernel-mount-nodev.m4 When checking for symbol exports, try compiling. 2012-07-26 13:42:57 -07:00
kernel-open-bdev-exclusive.m4 When checking for symbol exports, try compiling. 2012-07-26 13:42:57 -07:00
kernel-rq-for-each_segment.m4 Only use gcc -Wunused-but-set-variable when available 2013-01-10 16:09:39 -08:00
kernel-rq-is_sync.m4 Only use gcc -Wunused-but-set-variable when available 2013-01-10 16:09:39 -08:00
kernel-security-inode-init.m4 Use -Werror for all kernel configure tests. 2013-02-24 10:20:28 -08:00
kernel-set-nlink.m4 Linux 3.2 compat: set_nlink() 2011-12-16 20:02:52 -08:00
kernel-sget-args.m4 Linux 3.6 compat, sget() 2012-10-14 13:06:48 -07:00
kernel-show-options.m4 Fix NULL pointer dereference on PaX/GRSecurity patched Linux 3.3 and later kernels 2012-07-20 12:31:45 -07:00
kernel-shrink.m4 Linux 3.1 compat, super_block->s_shrink 2012-01-11 11:46:02 -08:00
kernel-truncate-range.m4 Linux 3.5 compat, iops->truncate_range() removed 2012-07-23 12:29:32 -07:00
kernel-truncate-setsize.m4 When checking for symbol exports, try compiling. 2012-07-26 13:42:57 -07:00
kernel-xattr-handler.m4 Fix gcc configure warnings 2011-04-19 10:10:47 -07:00
kernel.m4 Remove the bio_empty_barrier() check. 2013-02-24 10:22:34 -08:00
rpm.am Support building a zfs-modules-dkms sub package 2012-08-08 15:21:01 -07:00
suppressed-warnings.txt Suppress packaging warning 2011-11-08 11:32:04 -08:00
tgz.am Don't build packages that haven't been selected. 2012-07-26 13:39:37 -07:00
user-arch.m4 Add build system 2010-08-31 13:41:27 -07:00
user-frame-larger-than.m4 In autoconf v2.68, AC_LANG_PROGRAM must be quoted 2011-11-28 11:16:33 -08:00
user-ioctl.m4 Add build system 2010-08-31 13:41:27 -07:00
user-libblkid.m4 In autoconf v2.68, AC_LANG_PROGRAM must be quoted 2011-11-28 11:16:33 -08:00
user-libuuid.m4 Add build system 2010-08-31 13:41:27 -07:00
user-selinux.m4 Autoconf selinux support 2011-01-28 12:45:19 -08:00
user-udev.m4 Move udev rules from /etc/udev to /lib/udev 2011-08-08 16:21:10 -07:00
user-zlib.m4 Add build system 2010-08-31 13:41:27 -07:00
user.m4 Remove NPTL_GUARD_WITHIN_STACK 2013-01-29 10:58:20 -08:00
zfs-build.m4 Make configure builtin-aware. 2012-07-26 13:40:18 -07:00
zfs-meta.m4 Add build system 2010-08-31 13:41:27 -07:00