mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-12-25 18:59:33 +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_DISCARD
|
||||
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_MAX_HW_SECTORS
|
||||
ZFS_AC_KERNEL_BLK_QUEUE_MAX_SEGMENTS
|
||||
|
@ -37,6 +37,22 @@
|
||||
typedef unsigned __bitwise__ 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,
|
||||
* 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);
|
||||
|
||||
/* 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);
|
||||
if (zv->zv_disk == NULL)
|
||||
@ -1847,12 +1847,12 @@ zvol_create_minor_impl(const char *name)
|
||||
blk_queue_max_discard_sectors(zv->zv_queue,
|
||||
(zvol_max_discard_blocks * zv->zv_volblocksize) >> 9);
|
||||
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
|
||||
queue_flag_set_unlocked(QUEUE_FLAG_NONROT, zv->zv_queue);
|
||||
blk_queue_flag_set(QUEUE_FLAG_NONROT, zv->zv_queue);
|
||||
#endif
|
||||
#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
|
||||
|
||||
if (spa_writeable(dmu_objset_spa(os))) {
|
||||
|
Loading…
Reference in New Issue
Block a user