mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-12-26 19:19:32 +03:00
Linux compat 4.16: blk_queue_flag_{set,clear}
queue_flag_{set,clear}_unlocked are now private interfaces in the Linux kernel (https://github.com/torvalds/linux/commit/8a0ac14). Use blk_queue_flag_{set,clear} interfaces which were introduced as of https://github.com/torvalds/linux/commit/8814ce8. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Giuseppe Di Natale <dinatale2@llnl.gov> Closes #7410
This commit is contained in:
parent
74df0c5e25
commit
10f88c5cd5
38
config/kernel-blk-queue-flags.m4
Normal file
38
config/kernel-blk-queue-flags.m4
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
dnl #
|
||||||
|
dnl # API change
|
||||||
|
dnl # https://github.com/torvalds/linux/commit/8814ce8
|
||||||
|
dnl # Introduction of blk_queue_flag_set and blk_queue_flag_clear
|
||||||
|
dnl #
|
||||||
|
|
||||||
|
AC_DEFUN([ZFS_AC_KERNEL_BLK_QUEUE_FLAG_SET], [
|
||||||
|
AC_MSG_CHECKING([whether blk_queue_flag_set() exists])
|
||||||
|
ZFS_LINUX_TRY_COMPILE([
|
||||||
|
#include <linux/kernel.h>
|
||||||
|
#include <linux/blkdev.h>
|
||||||
|
],[
|
||||||
|
struct request_queue *q = NULL;
|
||||||
|
blk_queue_flag_set(0, q);
|
||||||
|
],[
|
||||||
|
AC_MSG_RESULT(yes)
|
||||||
|
AC_DEFINE(HAVE_BLK_QUEUE_FLAG_SET, 1, [blk_queue_flag_set() exists])
|
||||||
|
],[
|
||||||
|
AC_MSG_RESULT(no)
|
||||||
|
])
|
||||||
|
])
|
||||||
|
|
||||||
|
AC_DEFUN([ZFS_AC_KERNEL_BLK_QUEUE_FLAG_CLEAR], [
|
||||||
|
AC_MSG_CHECKING([whether blk_queue_flag_clear() exists])
|
||||||
|
ZFS_LINUX_TRY_COMPILE([
|
||||||
|
#include <linux/kernel.h>
|
||||||
|
#include <linux/blkdev.h>
|
||||||
|
],[
|
||||||
|
struct request_queue *q = NULL;
|
||||||
|
blk_queue_flag_clear(0, q);
|
||||||
|
],[
|
||||||
|
|
||||||
|
AC_MSG_RESULT(yes)
|
||||||
|
AC_DEFINE(HAVE_BLK_QUEUE_FLAG_CLEAR, 1, [blk_queue_flag_clear() exists])
|
||||||
|
],[
|
||||||
|
AC_MSG_RESULT(no)
|
||||||
|
])
|
||||||
|
])
|
@ -36,6 +36,8 @@ AC_DEFUN([ZFS_AC_CONFIG_KERNEL], [
|
|||||||
ZFS_AC_KERNEL_BIO_RW_BARRIER
|
ZFS_AC_KERNEL_BIO_RW_BARRIER
|
||||||
ZFS_AC_KERNEL_BIO_RW_DISCARD
|
ZFS_AC_KERNEL_BIO_RW_DISCARD
|
||||||
ZFS_AC_KERNEL_BLK_QUEUE_BDI
|
ZFS_AC_KERNEL_BLK_QUEUE_BDI
|
||||||
|
ZFS_AC_KERNEL_BLK_QUEUE_FLAG_CLEAR
|
||||||
|
ZFS_AC_KERNEL_BLK_QUEUE_FLAG_SET
|
||||||
ZFS_AC_KERNEL_BLK_QUEUE_FLUSH
|
ZFS_AC_KERNEL_BLK_QUEUE_FLUSH
|
||||||
ZFS_AC_KERNEL_BLK_QUEUE_MAX_HW_SECTORS
|
ZFS_AC_KERNEL_BLK_QUEUE_MAX_HW_SECTORS
|
||||||
ZFS_AC_KERNEL_BLK_QUEUE_MAX_SEGMENTS
|
ZFS_AC_KERNEL_BLK_QUEUE_MAX_SEGMENTS
|
||||||
|
@ -37,6 +37,22 @@
|
|||||||
typedef unsigned __bitwise__ fmode_t;
|
typedef unsigned __bitwise__ fmode_t;
|
||||||
#endif /* HAVE_FMODE_T */
|
#endif /* HAVE_FMODE_T */
|
||||||
|
|
||||||
|
#ifndef HAVE_BLK_QUEUE_FLAG_SET
|
||||||
|
static inline void
|
||||||
|
blk_queue_flag_set(unsigned int flag, struct request_queue *q)
|
||||||
|
{
|
||||||
|
queue_flag_set_unlocked(flag, q);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef HAVE_BLK_QUEUE_FLAG_CLEAR
|
||||||
|
static inline void
|
||||||
|
blk_queue_flag_clear(unsigned int flag, struct request_queue *q)
|
||||||
|
{
|
||||||
|
queue_flag_clear_unlocked(flag, q);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* 4.7 - 4.x API,
|
* 4.7 - 4.x API,
|
||||||
* The blk_queue_write_cache() interface has replaced blk_queue_flush()
|
* The blk_queue_write_cache() interface has replaced blk_queue_flush()
|
||||||
|
@ -1696,7 +1696,7 @@ zvol_alloc(dev_t dev, const char *name)
|
|||||||
blk_queue_set_read_ahead(zv->zv_queue, 1);
|
blk_queue_set_read_ahead(zv->zv_queue, 1);
|
||||||
|
|
||||||
/* Disable write merging in favor of the ZIO pipeline. */
|
/* Disable write merging in favor of the ZIO pipeline. */
|
||||||
queue_flag_set_unlocked(QUEUE_FLAG_NOMERGES, zv->zv_queue);
|
blk_queue_flag_set(QUEUE_FLAG_NOMERGES, zv->zv_queue);
|
||||||
|
|
||||||
zv->zv_disk = alloc_disk(ZVOL_MINORS);
|
zv->zv_disk = alloc_disk(ZVOL_MINORS);
|
||||||
if (zv->zv_disk == NULL)
|
if (zv->zv_disk == NULL)
|
||||||
@ -1847,12 +1847,12 @@ zvol_create_minor_impl(const char *name)
|
|||||||
blk_queue_max_discard_sectors(zv->zv_queue,
|
blk_queue_max_discard_sectors(zv->zv_queue,
|
||||||
(zvol_max_discard_blocks * zv->zv_volblocksize) >> 9);
|
(zvol_max_discard_blocks * zv->zv_volblocksize) >> 9);
|
||||||
blk_queue_discard_granularity(zv->zv_queue, zv->zv_volblocksize);
|
blk_queue_discard_granularity(zv->zv_queue, zv->zv_volblocksize);
|
||||||
queue_flag_set_unlocked(QUEUE_FLAG_DISCARD, zv->zv_queue);
|
blk_queue_flag_set(QUEUE_FLAG_DISCARD, zv->zv_queue);
|
||||||
#ifdef QUEUE_FLAG_NONROT
|
#ifdef QUEUE_FLAG_NONROT
|
||||||
queue_flag_set_unlocked(QUEUE_FLAG_NONROT, zv->zv_queue);
|
blk_queue_flag_set(QUEUE_FLAG_NONROT, zv->zv_queue);
|
||||||
#endif
|
#endif
|
||||||
#ifdef QUEUE_FLAG_ADD_RANDOM
|
#ifdef QUEUE_FLAG_ADD_RANDOM
|
||||||
queue_flag_clear_unlocked(QUEUE_FLAG_ADD_RANDOM, zv->zv_queue);
|
blk_queue_flag_clear(QUEUE_FLAG_ADD_RANDOM, zv->zv_queue);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (spa_writeable(dmu_objset_spa(os))) {
|
if (spa_writeable(dmu_objset_spa(os))) {
|
||||||
|
Loading…
Reference in New Issue
Block a user