Add backing_device_info per-filesystem
For a long time now the kernel has been moving away from using the pdflush daemon to write 'old' dirty pages to disk. The primary reason for this is because the pdflush daemon is single threaded and can be a limiting factor for performance. Since pdflush sequentially walks the dirty inode list for each super block any delay in processing can slow down dirty page writeback for all filesystems. The replacement for pdflush is called bdi (backing device info). The bdi system involves creating a per-filesystem control structure each with its own private sets of queues to manage writeback. The advantage is greater parallelism which improves performance and prevents a single filesystem from slowing writeback to the others. For a long time both systems co-existed in the kernel so it wasn't strictly required to implement the bdi scheme. However, as of Linux 2.6.36 kernels the pdflush functionality has been retired. Since ZFS already bypasses the page cache for most I/O this is only an issue for mmap(2) writes which must go through the page cache. Even then adding this missing support for newer kernels was overlooked because there are other mechanisms which can trigger writeback. However, there is one critical case where not implementing the bdi functionality can cause problems. If an application handles a page fault it can enter the balance_dirty_pages() callpath. This will result in the application hanging until the number of dirty pages in the system drops below the dirty ratio. Without a registered backing_device_info for the filesystem the dirty pages will not get written out. Thus the application will hang. As mentioned above this was less of an issue with older kernels because pdflush would eventually write out the dirty pages. This change adds a backing_device_info structure to the zfs_sb_t which is already allocated per-super block. It is then registered when the filesystem mounted and unregistered on unmount. It will not be registered for mounted snapshots which are read-only. This change will result in flush-<pool> thread being dynamically created and destroyed per-mounted filesystem for writeback. Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Closes #174
This commit is contained in:
parent
3c0e5c0f45
commit
76659dc110
|
@ -56,6 +56,7 @@ am__aclocal_m4_deps = \
|
||||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||||
|
$(top_srcdir)/config/kernel-bdi.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
||||||
|
|
|
@ -41,6 +41,7 @@ am__aclocal_m4_deps = \
|
||||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||||
|
$(top_srcdir)/config/kernel-bdi.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
||||||
|
|
|
@ -44,6 +44,7 @@ am__aclocal_m4_deps = \
|
||||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||||
|
$(top_srcdir)/config/kernel-bdi.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
||||||
|
|
|
@ -43,6 +43,7 @@ am__aclocal_m4_deps = \
|
||||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||||
|
$(top_srcdir)/config/kernel-bdi.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
||||||
|
|
|
@ -44,6 +44,7 @@ am__aclocal_m4_deps = \
|
||||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||||
|
$(top_srcdir)/config/kernel-bdi.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
||||||
|
|
|
@ -44,6 +44,7 @@ am__aclocal_m4_deps = \
|
||||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||||
|
$(top_srcdir)/config/kernel-bdi.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
||||||
|
|
|
@ -44,6 +44,7 @@ am__aclocal_m4_deps = \
|
||||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||||
|
$(top_srcdir)/config/kernel-bdi.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
||||||
|
|
|
@ -44,6 +44,7 @@ am__aclocal_m4_deps = \
|
||||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||||
|
$(top_srcdir)/config/kernel-bdi.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
||||||
|
|
|
@ -44,6 +44,7 @@ am__aclocal_m4_deps = \
|
||||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||||
|
$(top_srcdir)/config/kernel-bdi.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
||||||
|
|
|
@ -43,6 +43,7 @@ am__aclocal_m4_deps = \
|
||||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||||
|
$(top_srcdir)/config/kernel-bdi.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
||||||
|
|
|
@ -43,6 +43,7 @@ am__aclocal_m4_deps = \
|
||||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||||
|
$(top_srcdir)/config/kernel-bdi.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
||||||
|
|
|
@ -44,6 +44,7 @@ am__aclocal_m4_deps = \
|
||||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||||
|
$(top_srcdir)/config/kernel-bdi.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
||||||
|
|
|
@ -44,6 +44,7 @@ am__aclocal_m4_deps = \
|
||||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||||
|
$(top_srcdir)/config/kernel-bdi.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
dnl #
|
||||||
|
dnl # 2.6.32 API change
|
||||||
|
dnl # Private backing_device_info interfaces available
|
||||||
|
dnl #
|
||||||
|
AC_DEFUN([ZFS_AC_KERNEL_BDI], [
|
||||||
|
AC_MSG_CHECKING([whether super_block has s_bdi])
|
||||||
|
ZFS_LINUX_TRY_COMPILE([
|
||||||
|
#include <linux/fs.h>
|
||||||
|
],[
|
||||||
|
struct super_block sb __attribute__ ((unused));
|
||||||
|
sb.s_bdi = NULL;
|
||||||
|
],[
|
||||||
|
AC_MSG_RESULT(yes)
|
||||||
|
AC_DEFINE(HAVE_BDI, 1, [struct super_block has s_bdi])
|
||||||
|
],[
|
||||||
|
AC_MSG_RESULT(no)
|
||||||
|
])
|
||||||
|
])
|
|
@ -40,6 +40,7 @@ AC_DEFUN([ZFS_AC_CONFIG_KERNEL], [
|
||||||
ZFS_AC_KERNEL_TRUNCATE_SETSIZE
|
ZFS_AC_KERNEL_TRUNCATE_SETSIZE
|
||||||
ZFS_AC_KERNEL_6ARGS_SECURITY_INODE_INIT_SECURITY
|
ZFS_AC_KERNEL_6ARGS_SECURITY_INODE_INIT_SECURITY
|
||||||
ZFS_AC_KERNEL_MOUNT_NODEV
|
ZFS_AC_KERNEL_MOUNT_NODEV
|
||||||
|
ZFS_AC_KERNEL_BDI
|
||||||
|
|
||||||
if test "$LINUX_OBJ" != "$LINUX"; then
|
if test "$LINUX_OBJ" != "$LINUX"; then
|
||||||
KERNELMAKE_PARAMS="$KERNELMAKE_PARAMS O=$LINUX_OBJ"
|
KERNELMAKE_PARAMS="$KERNELMAKE_PARAMS O=$LINUX_OBJ"
|
||||||
|
|
|
@ -14686,6 +14686,72 @@ _ACEOF
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{ $as_echo "$as_me:$LINENO: checking whether super_block has s_bdi" >&5
|
||||||
|
$as_echo_n "checking whether super_block has s_bdi... " >&6; }
|
||||||
|
|
||||||
|
|
||||||
|
cat confdefs.h - <<_ACEOF >conftest.c
|
||||||
|
/* confdefs.h. */
|
||||||
|
_ACEOF
|
||||||
|
cat confdefs.h >>conftest.$ac_ext
|
||||||
|
cat >>conftest.$ac_ext <<_ACEOF
|
||||||
|
/* end confdefs.h. */
|
||||||
|
|
||||||
|
|
||||||
|
#include <linux/fs.h>
|
||||||
|
|
||||||
|
int
|
||||||
|
main (void)
|
||||||
|
{
|
||||||
|
|
||||||
|
struct super_block sb __attribute__ ((unused));
|
||||||
|
sb.s_bdi = NULL;
|
||||||
|
|
||||||
|
;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
_ACEOF
|
||||||
|
|
||||||
|
|
||||||
|
rm -Rf build && mkdir -p build
|
||||||
|
echo "obj-m := conftest.o" >build/Makefile
|
||||||
|
if { ac_try='cp conftest.c build && make modules -C $LINUX_OBJ EXTRA_CFLAGS="-Werror-implicit-function-declaration $EXTRA_KCFLAGS" $ARCH_UM M=$PWD/build'
|
||||||
|
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||||
|
(eval $ac_try) 2>&5
|
||||||
|
ac_status=$?
|
||||||
|
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||||
|
(exit $ac_status); }; } >/dev/null && { ac_try='test -s build/conftest.o'
|
||||||
|
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||||
|
(eval $ac_try) 2>&5
|
||||||
|
ac_status=$?
|
||||||
|
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||||
|
(exit $ac_status); }; }; then
|
||||||
|
|
||||||
|
{ $as_echo "$as_me:$LINENO: result: yes" >&5
|
||||||
|
$as_echo "yes" >&6; }
|
||||||
|
|
||||||
|
cat >>confdefs.h <<\_ACEOF
|
||||||
|
#define HAVE_BDI 1
|
||||||
|
_ACEOF
|
||||||
|
|
||||||
|
|
||||||
|
else
|
||||||
|
$as_echo "$as_me: failed program was:" >&5
|
||||||
|
sed 's/^/| /' conftest.$ac_ext >&5
|
||||||
|
|
||||||
|
{ $as_echo "$as_me:$LINENO: result: no" >&5
|
||||||
|
$as_echo "no" >&6; }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -Rf build
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if test "$LINUX_OBJ" != "$LINUX"; then
|
if test "$LINUX_OBJ" != "$LINUX"; then
|
||||||
KERNELMAKE_PARAMS="$KERNELMAKE_PARAMS O=$LINUX_OBJ"
|
KERNELMAKE_PARAMS="$KERNELMAKE_PARAMS O=$LINUX_OBJ"
|
||||||
fi
|
fi
|
||||||
|
@ -18956,6 +19022,72 @@ _ACEOF
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{ $as_echo "$as_me:$LINENO: checking whether super_block has s_bdi" >&5
|
||||||
|
$as_echo_n "checking whether super_block has s_bdi... " >&6; }
|
||||||
|
|
||||||
|
|
||||||
|
cat confdefs.h - <<_ACEOF >conftest.c
|
||||||
|
/* confdefs.h. */
|
||||||
|
_ACEOF
|
||||||
|
cat confdefs.h >>conftest.$ac_ext
|
||||||
|
cat >>conftest.$ac_ext <<_ACEOF
|
||||||
|
/* end confdefs.h. */
|
||||||
|
|
||||||
|
|
||||||
|
#include <linux/fs.h>
|
||||||
|
|
||||||
|
int
|
||||||
|
main (void)
|
||||||
|
{
|
||||||
|
|
||||||
|
struct super_block sb __attribute__ ((unused));
|
||||||
|
sb.s_bdi = NULL;
|
||||||
|
|
||||||
|
;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
_ACEOF
|
||||||
|
|
||||||
|
|
||||||
|
rm -Rf build && mkdir -p build
|
||||||
|
echo "obj-m := conftest.o" >build/Makefile
|
||||||
|
if { ac_try='cp conftest.c build && make modules -C $LINUX_OBJ EXTRA_CFLAGS="-Werror-implicit-function-declaration $EXTRA_KCFLAGS" $ARCH_UM M=$PWD/build'
|
||||||
|
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||||
|
(eval $ac_try) 2>&5
|
||||||
|
ac_status=$?
|
||||||
|
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||||
|
(exit $ac_status); }; } >/dev/null && { ac_try='test -s build/conftest.o'
|
||||||
|
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
|
||||||
|
(eval $ac_try) 2>&5
|
||||||
|
ac_status=$?
|
||||||
|
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
|
||||||
|
(exit $ac_status); }; }; then
|
||||||
|
|
||||||
|
{ $as_echo "$as_me:$LINENO: result: yes" >&5
|
||||||
|
$as_echo "yes" >&6; }
|
||||||
|
|
||||||
|
cat >>confdefs.h <<\_ACEOF
|
||||||
|
#define HAVE_BDI 1
|
||||||
|
_ACEOF
|
||||||
|
|
||||||
|
|
||||||
|
else
|
||||||
|
$as_echo "$as_me: failed program was:" >&5
|
||||||
|
sed 's/^/| /' conftest.$ac_ext >&5
|
||||||
|
|
||||||
|
{ $as_echo "$as_me:$LINENO: result: no" >&5
|
||||||
|
$as_echo "no" >&6; }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -Rf build
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if test "$LINUX_OBJ" != "$LINUX"; then
|
if test "$LINUX_OBJ" != "$LINUX"; then
|
||||||
KERNELMAKE_PARAMS="$KERNELMAKE_PARAMS O=$LINUX_OBJ"
|
KERNELMAKE_PARAMS="$KERNELMAKE_PARAMS O=$LINUX_OBJ"
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -43,6 +43,7 @@ am__aclocal_m4_deps = \
|
||||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||||
|
$(top_srcdir)/config/kernel-bdi.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
||||||
|
|
|
@ -41,6 +41,7 @@ am__aclocal_m4_deps = \
|
||||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||||
|
$(top_srcdir)/config/kernel-bdi.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
||||||
|
|
|
@ -41,6 +41,7 @@ am__aclocal_m4_deps = \
|
||||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||||
|
$(top_srcdir)/config/kernel-bdi.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
||||||
|
|
|
@ -44,6 +44,7 @@ am__aclocal_m4_deps = \
|
||||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||||
|
$(top_srcdir)/config/kernel-bdi.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
||||||
|
|
|
@ -41,6 +41,7 @@ am__aclocal_m4_deps = \
|
||||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||||
|
$(top_srcdir)/config/kernel-bdi.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
||||||
|
|
|
@ -42,6 +42,7 @@ am__aclocal_m4_deps = \
|
||||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||||
|
$(top_srcdir)/config/kernel-bdi.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
||||||
|
|
|
@ -42,6 +42,7 @@ am__aclocal_m4_deps = \
|
||||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||||
|
$(top_srcdir)/config/kernel-bdi.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
||||||
|
|
|
@ -43,6 +43,7 @@ am__aclocal_m4_deps = \
|
||||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||||
|
$(top_srcdir)/config/kernel-bdi.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
||||||
|
|
|
@ -43,6 +43,7 @@ am__aclocal_m4_deps = \
|
||||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||||
|
$(top_srcdir)/config/kernel-bdi.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
||||||
|
|
|
@ -62,4 +62,23 @@ truncate_setsize(struct inode *ip, loff_t new)
|
||||||
}
|
}
|
||||||
#endif /* HAVE_TRUNCATE_SETSIZE */
|
#endif /* HAVE_TRUNCATE_SETSIZE */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 2.6.32 API change,
|
||||||
|
* Added backing_device_info (bdi) per super block interfaces. When
|
||||||
|
* available a bdi must be configured when using a non-device backed
|
||||||
|
* filesystem for proper writeback. It's safe to leave this code
|
||||||
|
* dormant for kernels which only support pdflush and not bdi.
|
||||||
|
*/
|
||||||
|
#ifdef HAVE_BDI
|
||||||
|
#define bdi_get_sb(sb) (sb->s_bdi)
|
||||||
|
#define bdi_put_sb(sb, bdi) (sb->s_bdi = bdi)
|
||||||
|
#else
|
||||||
|
#define bdi_init(bdi) (0)
|
||||||
|
#define bdi_destroy(bdi) (0)
|
||||||
|
#define bdi_register(bdi, parent, fmt, args) (0)
|
||||||
|
#define bdi_unregister(bdi) (0)
|
||||||
|
#define bdi_get_sb(sb) (0)
|
||||||
|
#define bdi_put_sb(sb, bdi) (0)
|
||||||
|
#endif /* HAVE_BDI */
|
||||||
|
|
||||||
#endif /* _ZFS_VFS_H */
|
#endif /* _ZFS_VFS_H */
|
||||||
|
|
|
@ -43,6 +43,7 @@ am__aclocal_m4_deps = \
|
||||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||||
|
$(top_srcdir)/config/kernel-bdi.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
||||||
|
|
|
@ -43,6 +43,7 @@ am__aclocal_m4_deps = \
|
||||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||||
|
$(top_srcdir)/config/kernel-bdi.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
||||||
|
|
|
@ -43,6 +43,7 @@ am__aclocal_m4_deps = \
|
||||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||||
|
$(top_srcdir)/config/kernel-bdi.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
||||||
|
|
|
@ -43,6 +43,7 @@ am__aclocal_m4_deps = \
|
||||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||||
|
$(top_srcdir)/config/kernel-bdi.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
||||||
|
|
|
@ -43,6 +43,7 @@ struct znode;
|
||||||
|
|
||||||
typedef struct zfs_sb {
|
typedef struct zfs_sb {
|
||||||
struct super_block *z_sb; /* generic super_block */
|
struct super_block *z_sb; /* generic super_block */
|
||||||
|
struct backing_dev_info z_bdi; /* generic backing dev info */
|
||||||
struct zfs_sb *z_parent; /* parent fs */
|
struct zfs_sb *z_parent; /* parent fs */
|
||||||
objset_t *z_os; /* objset reference */
|
objset_t *z_os; /* objset reference */
|
||||||
uint64_t z_flags; /* super_block flags */
|
uint64_t z_flags; /* super_block flags */
|
||||||
|
|
|
@ -41,6 +41,7 @@ am__aclocal_m4_deps = \
|
||||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||||
|
$(top_srcdir)/config/kernel-bdi.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
||||||
|
|
|
@ -43,6 +43,7 @@ am__aclocal_m4_deps = \
|
||||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||||
|
$(top_srcdir)/config/kernel-bdi.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
||||||
|
|
|
@ -43,6 +43,7 @@ am__aclocal_m4_deps = \
|
||||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||||
|
$(top_srcdir)/config/kernel-bdi.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
||||||
|
|
|
@ -43,6 +43,7 @@ am__aclocal_m4_deps = \
|
||||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||||
|
$(top_srcdir)/config/kernel-bdi.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
||||||
|
|
|
@ -43,6 +43,7 @@ am__aclocal_m4_deps = \
|
||||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||||
|
$(top_srcdir)/config/kernel-bdi.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
||||||
|
|
|
@ -43,6 +43,7 @@ am__aclocal_m4_deps = \
|
||||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||||
|
$(top_srcdir)/config/kernel-bdi.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
||||||
|
|
|
@ -42,6 +42,7 @@ am__aclocal_m4_deps = \
|
||||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||||
|
$(top_srcdir)/config/kernel-bdi.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
||||||
|
|
|
@ -43,6 +43,7 @@ am__aclocal_m4_deps = \
|
||||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||||
|
$(top_srcdir)/config/kernel-bdi.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
||||||
|
|
|
@ -43,6 +43,7 @@ am__aclocal_m4_deps = \
|
||||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||||
|
$(top_srcdir)/config/kernel-bdi.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
||||||
|
|
|
@ -43,6 +43,7 @@ am__aclocal_m4_deps = \
|
||||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||||
|
$(top_srcdir)/config/kernel-bdi.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
||||||
|
|
|
@ -41,6 +41,7 @@ am__aclocal_m4_deps = \
|
||||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||||
|
$(top_srcdir)/config/kernel-bdi.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
||||||
|
|
|
@ -43,6 +43,7 @@ am__aclocal_m4_deps = \
|
||||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||||
|
$(top_srcdir)/config/kernel-bdi.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
||||||
|
|
|
@ -43,6 +43,7 @@ am__aclocal_m4_deps = \
|
||||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||||
|
$(top_srcdir)/config/kernel-bdi.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
||||||
|
|
|
@ -43,6 +43,7 @@ am__aclocal_m4_deps = \
|
||||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||||
|
$(top_srcdir)/config/kernel-bdi.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
||||||
|
|
|
@ -43,6 +43,7 @@ am__aclocal_m4_deps = \
|
||||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||||
|
$(top_srcdir)/config/kernel-bdi.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
||||||
|
|
|
@ -43,6 +43,7 @@ am__aclocal_m4_deps = \
|
||||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||||
|
$(top_srcdir)/config/kernel-bdi.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
||||||
|
|
|
@ -43,6 +43,7 @@ am__aclocal_m4_deps = \
|
||||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||||
|
$(top_srcdir)/config/kernel-bdi.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
||||||
|
|
|
@ -43,6 +43,7 @@ am__aclocal_m4_deps = \
|
||||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||||
|
$(top_srcdir)/config/kernel-bdi.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
||||||
|
|
|
@ -43,6 +43,7 @@ am__aclocal_m4_deps = \
|
||||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||||
|
$(top_srcdir)/config/kernel-bdi.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
||||||
|
|
|
@ -43,6 +43,7 @@ am__aclocal_m4_deps = \
|
||||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||||
|
$(top_srcdir)/config/kernel-bdi.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
||||||
|
|
|
@ -43,6 +43,7 @@ am__aclocal_m4_deps = \
|
||||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||||
|
$(top_srcdir)/config/kernel-bdi.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
||||||
|
|
|
@ -41,6 +41,7 @@ am__aclocal_m4_deps = \
|
||||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||||
|
$(top_srcdir)/config/kernel-bdi.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
||||||
|
|
|
@ -41,6 +41,7 @@ am__aclocal_m4_deps = \
|
||||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||||
|
$(top_srcdir)/config/kernel-bdi.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
||||||
|
|
|
@ -600,6 +600,12 @@ zfs_sb_create(const char *osname, zfs_sb_t **zsbp)
|
||||||
zsb->z_show_ctldir = ZFS_SNAPDIR_VISIBLE;
|
zsb->z_show_ctldir = ZFS_SNAPDIR_VISIBLE;
|
||||||
zsb->z_os = os;
|
zsb->z_os = os;
|
||||||
|
|
||||||
|
error = -bdi_init(&zsb->z_bdi);
|
||||||
|
if (error) {
|
||||||
|
kmem_free(zsb, sizeof (zfs_sb_t));
|
||||||
|
return (error);
|
||||||
|
}
|
||||||
|
|
||||||
error = zfs_get_zplprop(os, ZFS_PROP_VERSION, &zsb->z_version);
|
error = zfs_get_zplprop(os, ZFS_PROP_VERSION, &zsb->z_version);
|
||||||
if (error) {
|
if (error) {
|
||||||
goto out;
|
goto out;
|
||||||
|
@ -799,6 +805,7 @@ zfs_sb_free(zfs_sb_t *zsb)
|
||||||
|
|
||||||
zfs_fuid_destroy(zsb);
|
zfs_fuid_destroy(zsb);
|
||||||
|
|
||||||
|
bdi_destroy(&zsb->z_bdi);
|
||||||
mutex_destroy(&zsb->z_znodes_lock);
|
mutex_destroy(&zsb->z_znodes_lock);
|
||||||
mutex_destroy(&zsb->z_lock);
|
mutex_destroy(&zsb->z_lock);
|
||||||
list_destroy(&zsb->z_all_znodes);
|
list_destroy(&zsb->z_all_znodes);
|
||||||
|
@ -1077,6 +1084,10 @@ zfsvfs_teardown(zfs_sb_t *zsb, boolean_t unmounting)
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef HAVE_BDI
|
||||||
|
static atomic_long_t bdi_seq = ATOMIC_LONG_INIT(0);
|
||||||
|
#endif /* HAVE_BDI */
|
||||||
|
|
||||||
int
|
int
|
||||||
zfs_domount(struct super_block *sb, void *data, int silent)
|
zfs_domount(struct super_block *sb, void *data, int silent)
|
||||||
{
|
{
|
||||||
|
@ -1102,6 +1113,7 @@ zfs_domount(struct super_block *sb, void *data, int silent)
|
||||||
sb->s_time_gran = 1;
|
sb->s_time_gran = 1;
|
||||||
sb->s_blocksize = recordsize;
|
sb->s_blocksize = recordsize;
|
||||||
sb->s_blocksize_bits = ilog2(recordsize);
|
sb->s_blocksize_bits = ilog2(recordsize);
|
||||||
|
bdi_put_sb(sb, NULL);
|
||||||
|
|
||||||
/* Set callback operations for the file system. */
|
/* Set callback operations for the file system. */
|
||||||
sb->s_op = &zpl_super_operations;
|
sb->s_op = &zpl_super_operations;
|
||||||
|
@ -1126,6 +1138,16 @@ zfs_domount(struct super_block *sb, void *data, int silent)
|
||||||
dmu_objset_set_user(zsb->z_os, zsb);
|
dmu_objset_set_user(zsb->z_os, zsb);
|
||||||
mutex_exit(&zsb->z_os->os_user_ptr_lock);
|
mutex_exit(&zsb->z_os->os_user_ptr_lock);
|
||||||
} else {
|
} else {
|
||||||
|
/* Disable Linux read-ahead handled by lower layers */
|
||||||
|
zsb->z_bdi.ra_pages = 0;
|
||||||
|
|
||||||
|
error = -bdi_register(&zsb->z_bdi, NULL, "zfs-%d",
|
||||||
|
atomic_long_inc_return(&bdi_seq));
|
||||||
|
if (error)
|
||||||
|
goto out;
|
||||||
|
|
||||||
|
bdi_put_sb(sb, &zsb->z_bdi);
|
||||||
|
|
||||||
error = zfs_sb_setup(zsb, B_TRUE);
|
error = zfs_sb_setup(zsb, B_TRUE);
|
||||||
#ifdef HAVE_SNAPSHOT
|
#ifdef HAVE_SNAPSHOT
|
||||||
(void) zfs_snap_create(zsb);
|
(void) zfs_snap_create(zsb);
|
||||||
|
@ -1166,6 +1188,11 @@ zfs_umount(struct super_block *sb)
|
||||||
VERIFY(zfsvfs_teardown(zsb, B_TRUE) == 0);
|
VERIFY(zfsvfs_teardown(zsb, B_TRUE) == 0);
|
||||||
os = zsb->z_os;
|
os = zsb->z_os;
|
||||||
|
|
||||||
|
if (bdi_get_sb(sb)) {
|
||||||
|
bdi_unregister(bdi_get_sb(sb));
|
||||||
|
bdi_put_sb(sb, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* z_os will be NULL if there was an error in
|
* z_os will be NULL if there was an error in
|
||||||
* attempting to reopen zsb.
|
* attempting to reopen zsb.
|
||||||
|
|
|
@ -42,6 +42,7 @@ am__aclocal_m4_deps = \
|
||||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||||
|
$(top_srcdir)/config/kernel-bdi.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
||||||
|
|
|
@ -42,6 +42,7 @@ am__aclocal_m4_deps = \
|
||||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||||
|
$(top_srcdir)/config/kernel-bdi.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
||||||
|
|
|
@ -42,6 +42,7 @@ am__aclocal_m4_deps = \
|
||||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||||
|
$(top_srcdir)/config/kernel-bdi.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
||||||
|
|
|
@ -42,6 +42,7 @@ am__aclocal_m4_deps = \
|
||||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||||
|
$(top_srcdir)/config/kernel-bdi.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
||||||
|
|
|
@ -42,6 +42,7 @@ am__aclocal_m4_deps = \
|
||||||
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
$(top_srcdir)/config/always-no-unused-but-set-variable.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
$(top_srcdir)/config/kernel-bdev-block-device-operations.m4 \
|
||||||
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
$(top_srcdir)/config/kernel-bdev-logical-size.m4 \
|
||||||
|
$(top_srcdir)/config/kernel-bdi.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
$(top_srcdir)/config/kernel-bio-empty-barrier.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
$(top_srcdir)/config/kernel-bio-end-io-t-args.m4 \
|
||||||
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
$(top_srcdir)/config/kernel-bio-failfast.m4 \
|
||||||
|
|
|
@ -18,6 +18,9 @@
|
||||||
/* bdev_logical_block_size() is available */
|
/* bdev_logical_block_size() is available */
|
||||||
#undef HAVE_BDEV_LOGICAL_BLOCK_SIZE
|
#undef HAVE_BDEV_LOGICAL_BLOCK_SIZE
|
||||||
|
|
||||||
|
/* struct super_block has s_bdi */
|
||||||
|
#undef HAVE_BDI
|
||||||
|
|
||||||
/* bio_empy_barrier() is defined */
|
/* bio_empy_barrier() is defined */
|
||||||
#undef HAVE_BIO_EMPTY_BARRIER
|
#undef HAVE_BIO_EMPTY_BARRIER
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue