Add support for DISCARD to ZVOLs.
DISCARD (REQ_DISCARD, BLKDISCARD) is useful for thin provisioning. It allows ZVOL clients to discard (unmap, trim) block ranges from a ZVOL, thus optimizing disk space usage by allowing a ZVOL to shrink instead of just grow. We can't use zfs_space() or zfs_freesp() here, since these functions only work on regular files, not volumes. Fortunately we can use the low-level function dmu_free_long_range() which does exactly what we want. Currently the discard operation is not added to the log. That's not a big deal since losing discard requests cannot result in data corruption. It would however result in disk space usage higher than it should be. Thus adding log support to zvol_discard() is probably a good idea for a future improvement. Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
This commit is contained in:
parent
cb2d19010d
commit
30930fba21
|
@ -72,6 +72,7 @@ am__aclocal_m4_deps = \
|
|||
$(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-discard.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
|
|
|
@ -49,6 +49,7 @@ am__aclocal_m4_deps = \
|
|||
$(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-discard.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
|
|
|
@ -52,6 +52,7 @@ am__aclocal_m4_deps = \
|
|||
$(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-discard.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
|
|
|
@ -51,6 +51,7 @@ am__aclocal_m4_deps = \
|
|||
$(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-discard.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
|
|
|
@ -52,6 +52,7 @@ am__aclocal_m4_deps = \
|
|||
$(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-discard.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
|
|
|
@ -52,6 +52,7 @@ am__aclocal_m4_deps = \
|
|||
$(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-discard.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
|
|
|
@ -52,6 +52,7 @@ am__aclocal_m4_deps = \
|
|||
$(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-discard.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
|
|
|
@ -52,6 +52,7 @@ am__aclocal_m4_deps = \
|
|||
$(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-discard.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
|
|
|
@ -52,6 +52,7 @@ am__aclocal_m4_deps = \
|
|||
$(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-discard.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
|
|
|
@ -51,6 +51,7 @@ am__aclocal_m4_deps = \
|
|||
$(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-discard.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
|
|
|
@ -51,6 +51,7 @@ am__aclocal_m4_deps = \
|
|||
$(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-discard.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
|
|
|
@ -52,6 +52,7 @@ am__aclocal_m4_deps = \
|
|||
$(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-discard.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
|
|
|
@ -52,6 +52,7 @@ am__aclocal_m4_deps = \
|
|||
$(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-discard.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
dnl #
|
||||
dnl # 2.6.32 API change
|
||||
dnl # Discard requests were moved to the normal I/O path.
|
||||
dnl #
|
||||
AC_DEFUN([ZFS_AC_KERNEL_BLK_QUEUE_DISCARD], [
|
||||
AC_MSG_CHECKING([whether blk_queue_discard() is available])
|
||||
tmp_flags="$EXTRA_KCFLAGS"
|
||||
EXTRA_KCFLAGS="-Wno-unused-but-set-variable"
|
||||
ZFS_LINUX_TRY_COMPILE([
|
||||
#include <linux/blkdev.h>
|
||||
],[
|
||||
struct request_queue *q = NULL;
|
||||
(void) blk_queue_discard(q);
|
||||
],[
|
||||
AC_MSG_RESULT(yes)
|
||||
AC_DEFINE(HAVE_BLK_QUEUE_DISCARD, 1,
|
||||
[blk_queue_discard() is available])
|
||||
],[
|
||||
AC_MSG_RESULT(no)
|
||||
])
|
||||
EXTRA_KCFLAGS="$tmp_flags"
|
||||
])
|
|
@ -27,6 +27,7 @@ AC_DEFUN([ZFS_AC_CONFIG_KERNEL], [
|
|||
ZFS_AC_KERNEL_BLK_QUEUE_PHYSICAL_BLOCK_SIZE
|
||||
ZFS_AC_KERNEL_BLK_QUEUE_IO_OPT
|
||||
ZFS_AC_KERNEL_BLK_QUEUE_NONROT
|
||||
ZFS_AC_KERNEL_BLK_QUEUE_DISCARD
|
||||
ZFS_AC_KERNEL_BLK_FETCH_REQUEST
|
||||
ZFS_AC_KERNEL_BLK_REQUEUE_REQUEST
|
||||
ZFS_AC_KERNEL_BLK_RQ_BYTES
|
||||
|
|
|
@ -14151,6 +14151,75 @@ $as_echo "no" >&6; }
|
|||
|
||||
|
||||
|
||||
fi
|
||||
|
||||
rm -Rf build
|
||||
|
||||
|
||||
EXTRA_KCFLAGS="$tmp_flags"
|
||||
|
||||
|
||||
{ $as_echo "$as_me:$LINENO: checking whether blk_queue_discard() is available" >&5
|
||||
$as_echo_n "checking whether blk_queue_discard() is available... " >&6; }
|
||||
tmp_flags="$EXTRA_KCFLAGS"
|
||||
EXTRA_KCFLAGS="-Wno-unused-but-set-variable"
|
||||
|
||||
|
||||
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/blkdev.h>
|
||||
|
||||
int
|
||||
main (void)
|
||||
{
|
||||
|
||||
struct request_queue *q = NULL;
|
||||
(void) blk_queue_discard(q);
|
||||
|
||||
;
|
||||
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_BLK_QUEUE_DISCARD 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
|
||||
|
@ -19969,6 +20038,75 @@ $as_echo "no" >&6; }
|
|||
|
||||
|
||||
|
||||
fi
|
||||
|
||||
rm -Rf build
|
||||
|
||||
|
||||
EXTRA_KCFLAGS="$tmp_flags"
|
||||
|
||||
|
||||
{ $as_echo "$as_me:$LINENO: checking whether blk_queue_discard() is available" >&5
|
||||
$as_echo_n "checking whether blk_queue_discard() is available... " >&6; }
|
||||
tmp_flags="$EXTRA_KCFLAGS"
|
||||
EXTRA_KCFLAGS="-Wno-unused-but-set-variable"
|
||||
|
||||
|
||||
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/blkdev.h>
|
||||
|
||||
int
|
||||
main (void)
|
||||
{
|
||||
|
||||
struct request_queue *q = NULL;
|
||||
(void) blk_queue_discard(q);
|
||||
|
||||
;
|
||||
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_BLK_QUEUE_DISCARD 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
|
||||
|
|
|
@ -50,6 +50,7 @@ am__aclocal_m4_deps = \
|
|||
$(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-discard.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
|
|
|
@ -49,6 +49,7 @@ am__aclocal_m4_deps = \
|
|||
$(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-discard.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
|
|
|
@ -49,6 +49,7 @@ am__aclocal_m4_deps = \
|
|||
$(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-discard.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
|
|
|
@ -50,6 +50,7 @@ am__aclocal_m4_deps = \
|
|||
$(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-discard.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
|
|
|
@ -50,6 +50,7 @@ am__aclocal_m4_deps = \
|
|||
$(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-discard.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
|
|
|
@ -51,6 +51,7 @@ am__aclocal_m4_deps = \
|
|||
$(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-discard.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
|
|
|
@ -51,6 +51,7 @@ am__aclocal_m4_deps = \
|
|||
$(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-discard.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
|
|
|
@ -424,6 +424,14 @@ bio_set_flags_failfast(struct block_device *bdev, int *flags)
|
|||
# define VDEV_REQ_FUA REQ_HARDBARRIER
|
||||
#endif
|
||||
|
||||
/*
|
||||
* 2.6.32 API change
|
||||
* Use the normal I/O patch for discards.
|
||||
*/
|
||||
#ifdef REQ_DISCARD
|
||||
# define VDEV_REQ_DISCARD REQ_DISCARD
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Default Linux IO Scheduler,
|
||||
* Setting the scheduler to noop will allow the Linux IO scheduler to
|
||||
|
|
|
@ -51,6 +51,7 @@ am__aclocal_m4_deps = \
|
|||
$(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-discard.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
|
|
|
@ -51,6 +51,7 @@ am__aclocal_m4_deps = \
|
|||
$(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-discard.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
|
|
|
@ -51,6 +51,7 @@ am__aclocal_m4_deps = \
|
|||
$(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-discard.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
|
|
|
@ -51,6 +51,7 @@ am__aclocal_m4_deps = \
|
|||
$(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-discard.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
|
|
|
@ -49,6 +49,7 @@ am__aclocal_m4_deps = \
|
|||
$(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-discard.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
|
|
|
@ -51,6 +51,7 @@ am__aclocal_m4_deps = \
|
|||
$(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-discard.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
|
|
|
@ -51,6 +51,7 @@ am__aclocal_m4_deps = \
|
|||
$(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-discard.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
|
|
|
@ -51,6 +51,7 @@ am__aclocal_m4_deps = \
|
|||
$(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-discard.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
|
|
|
@ -51,6 +51,7 @@ am__aclocal_m4_deps = \
|
|||
$(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-discard.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
|
|
|
@ -51,6 +51,7 @@ am__aclocal_m4_deps = \
|
|||
$(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-discard.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
|
|
|
@ -50,6 +50,7 @@ am__aclocal_m4_deps = \
|
|||
$(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-discard.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
|
|
|
@ -51,6 +51,7 @@ am__aclocal_m4_deps = \
|
|||
$(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-discard.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
|
|
|
@ -51,6 +51,7 @@ am__aclocal_m4_deps = \
|
|||
$(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-discard.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
|
|
|
@ -51,6 +51,7 @@ am__aclocal_m4_deps = \
|
|||
$(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-discard.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
|
|
|
@ -49,6 +49,7 @@ am__aclocal_m4_deps = \
|
|||
$(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-discard.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
|
|
|
@ -51,6 +51,7 @@ am__aclocal_m4_deps = \
|
|||
$(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-discard.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
|
|
|
@ -51,6 +51,7 @@ am__aclocal_m4_deps = \
|
|||
$(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-discard.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
|
|
|
@ -51,6 +51,7 @@ am__aclocal_m4_deps = \
|
|||
$(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-discard.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
|
|
|
@ -51,6 +51,7 @@ am__aclocal_m4_deps = \
|
|||
$(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-discard.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
|
|
|
@ -51,6 +51,7 @@ am__aclocal_m4_deps = \
|
|||
$(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-discard.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
|
|
|
@ -51,6 +51,7 @@ am__aclocal_m4_deps = \
|
|||
$(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-discard.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
|
|
|
@ -51,6 +51,7 @@ am__aclocal_m4_deps = \
|
|||
$(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-discard.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
|
|
|
@ -51,6 +51,7 @@ am__aclocal_m4_deps = \
|
|||
$(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-discard.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
|
|
|
@ -51,6 +51,7 @@ am__aclocal_m4_deps = \
|
|||
$(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-discard.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
|
|
|
@ -51,6 +51,7 @@ am__aclocal_m4_deps = \
|
|||
$(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-discard.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
|
|
|
@ -49,6 +49,7 @@ am__aclocal_m4_deps = \
|
|||
$(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-discard.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
|
|
|
@ -49,6 +49,7 @@ am__aclocal_m4_deps = \
|
|||
$(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-discard.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
|
|
|
@ -574,6 +574,42 @@ zvol_write(void *arg)
|
|||
blk_end_request(req, -error, size);
|
||||
}
|
||||
|
||||
#ifdef HAVE_BLK_QUEUE_DISCARD
|
||||
static void
|
||||
zvol_discard(void *arg)
|
||||
{
|
||||
struct request *req = (struct request *)arg;
|
||||
struct request_queue *q = req->q;
|
||||
zvol_state_t *zv = q->queuedata;
|
||||
uint64_t offset = blk_rq_pos(req) << 9;
|
||||
uint64_t size = blk_rq_bytes(req);
|
||||
int error;
|
||||
rl_t *rl;
|
||||
|
||||
if (offset + size > zv->zv_volsize) {
|
||||
blk_end_request(req, -EIO, size);
|
||||
return;
|
||||
}
|
||||
|
||||
if (size == 0) {
|
||||
blk_end_request(req, 0, size);
|
||||
return;
|
||||
}
|
||||
|
||||
rl = zfs_range_lock(&zv->zv_znode, offset, size, RL_WRITER);
|
||||
|
||||
error = dmu_free_long_range(zv->zv_objset, ZVOL_OBJ, offset, size);
|
||||
|
||||
/*
|
||||
* TODO: maybe we should add the operation to the log.
|
||||
*/
|
||||
|
||||
zfs_range_unlock(rl);
|
||||
|
||||
blk_end_request(req, -error, size);
|
||||
}
|
||||
#endif /* HAVE_BLK_QUEUE_DISCARD */
|
||||
|
||||
/*
|
||||
* Common read path running under the zvol taskq context. This function
|
||||
* is responsible for copying the requested data out of the DMU and in to
|
||||
|
@ -674,6 +710,13 @@ zvol_request(struct request_queue *q)
|
|||
break;
|
||||
}
|
||||
|
||||
#ifdef HAVE_BLK_QUEUE_DISCARD
|
||||
if (req->cmd_flags & VDEV_REQ_DISCARD) {
|
||||
zvol_dispatch(zvol_discard, req);
|
||||
break;
|
||||
}
|
||||
#endif /* HAVE_BLK_QUEUE_DISCARD */
|
||||
|
||||
zvol_dispatch(zvol_write, req);
|
||||
break;
|
||||
default:
|
||||
|
@ -1193,6 +1236,10 @@ __zvol_create_minor(const char *name)
|
|||
blk_queue_max_segment_size(zv->zv_queue, UINT_MAX);
|
||||
blk_queue_physical_block_size(zv->zv_queue, zv->zv_volblocksize);
|
||||
blk_queue_io_opt(zv->zv_queue, zv->zv_volblocksize);
|
||||
#ifdef HAVE_BLK_QUEUE_DISCARD
|
||||
blk_queue_max_discard_sectors(zv->zv_queue, UINT_MAX);
|
||||
queue_flag_set_unlocked(QUEUE_FLAG_DISCARD, zv->zv_queue);
|
||||
#endif
|
||||
#ifdef HAVE_BLK_QUEUE_NONROT
|
||||
queue_flag_set_unlocked(QUEUE_FLAG_NONROT, zv->zv_queue);
|
||||
#endif
|
||||
|
|
|
@ -50,6 +50,7 @@ am__aclocal_m4_deps = \
|
|||
$(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-discard.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
|
|
|
@ -50,6 +50,7 @@ am__aclocal_m4_deps = \
|
|||
$(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-discard.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
|
|
|
@ -50,6 +50,7 @@ am__aclocal_m4_deps = \
|
|||
$(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-discard.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
|
|
|
@ -50,6 +50,7 @@ am__aclocal_m4_deps = \
|
|||
$(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-discard.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
|
|
|
@ -50,6 +50,7 @@ am__aclocal_m4_deps = \
|
|||
$(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-discard.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
|
|
|
@ -49,6 +49,7 @@ am__aclocal_m4_deps = \
|
|||
$(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-discard.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
|
|
|
@ -50,6 +50,7 @@ am__aclocal_m4_deps = \
|
|||
$(top_srcdir)/config/kernel-bio-rw-syncio.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-end-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-fetch-request.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-discard.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-flush.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-io-opt.m4 \
|
||||
$(top_srcdir)/config/kernel-blk-queue-max-hw-sectors.m4 \
|
||||
|
|
|
@ -51,6 +51,9 @@
|
|||
/* blk_fetch_request() is available */
|
||||
#undef HAVE_BLK_FETCH_REQUEST
|
||||
|
||||
/* blk_queue_discard() is available */
|
||||
#undef HAVE_BLK_QUEUE_DISCARD
|
||||
|
||||
/* blk_queue_flush() is available */
|
||||
#undef HAVE_BLK_QUEUE_FLUSH
|
||||
|
||||
|
|
Loading…
Reference in New Issue