Skip to content

Commit

Permalink
queue_flag_{set,clear}_unlocked are now private
Browse files Browse the repository at this point in the history
queue_flag_{set,clear}_unlocked are now private interfaces in
the Linux kernel (torvalds/linux@8a0ac14).
Use blk_queue_flag_{set,clear} interfaces which were introduced as
of torvalds/linux@8814ce8.

Signed-off-by: Giuseppe Di Natale <dinatale2@llnl.gov>
Requires-builders: style build
  • Loading branch information
dinatale2 committed Apr 8, 2018
1 parent 6c9af9e commit c27958b
Show file tree
Hide file tree
Showing 4 changed files with 54 additions and 4 deletions.
32 changes: 32 additions & 0 deletions config/kernel-blk-queue-flags.m4
@@ -0,0 +1,32 @@
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)
])
])
2 changes: 2 additions & 0 deletions config/kernel.m4
Expand Up @@ -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
Expand Down
16 changes: 16 additions & 0 deletions include/linux/blkdev_compat.h
Expand Up @@ -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()
Expand Down
8 changes: 4 additions & 4 deletions module/zfs/zvol.c
Expand Up @@ -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)
Expand Down Expand Up @@ -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))) {
Expand Down

0 comments on commit c27958b

Please sign in to comment.