mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-12-25 18:59:33 +03:00
Linux 6.6 compat: fsync_bdev() has been removed in favor of sync_blockdev()
In Linux commit 560e20e4bf6484a0c12f9f3c7a1aa55056948e1e, the fsync_bdev() function was removed in favor of sync_blockdev() to do (roughly) the same thing, given the same input. This change conditionally attempts to call sync_blockdev() if fsync_bdev() isn't discovered during configure. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Coleman Kane <ckane@colemankane.org> Closes #15263
This commit is contained in:
parent
21875dd090
commit
3f67e012e4
36
config/kernel-fsync-bdev.m4
Normal file
36
config/kernel-fsync-bdev.m4
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
dnl #
|
||||||
|
dnl # 6.6 API change,
|
||||||
|
dnl # fsync_bdev was removed in favor of sync_blockdev
|
||||||
|
dnl #
|
||||||
|
AC_DEFUN([ZFS_AC_KERNEL_SRC_SYNC_BDEV], [
|
||||||
|
ZFS_LINUX_TEST_SRC([fsync_bdev], [
|
||||||
|
#include <linux/blkdev.h>
|
||||||
|
],[
|
||||||
|
fsync_bdev(NULL);
|
||||||
|
])
|
||||||
|
|
||||||
|
ZFS_LINUX_TEST_SRC([sync_blockdev], [
|
||||||
|
#include <linux/blkdev.h>
|
||||||
|
],[
|
||||||
|
sync_blockdev(NULL);
|
||||||
|
])
|
||||||
|
])
|
||||||
|
|
||||||
|
AC_DEFUN([ZFS_AC_KERNEL_SYNC_BDEV], [
|
||||||
|
AC_MSG_CHECKING([whether fsync_bdev() exists])
|
||||||
|
ZFS_LINUX_TEST_RESULT([fsync_bdev], [
|
||||||
|
AC_MSG_RESULT(yes)
|
||||||
|
AC_DEFINE(HAVE_FSYNC_BDEV, 1,
|
||||||
|
[fsync_bdev() is declared in include/blkdev.h])
|
||||||
|
],[
|
||||||
|
AC_MSG_CHECKING([whether sync_blockdev() exists])
|
||||||
|
ZFS_LINUX_TEST_RESULT([sync_blockdev], [
|
||||||
|
AC_MSG_RESULT(yes)
|
||||||
|
AC_DEFINE(HAVE_SYNC_BLOCKDEV, 1,
|
||||||
|
[sync_blockdev() is declared in include/blkdev.h])
|
||||||
|
],[
|
||||||
|
ZFS_LINUX_TEST_ERROR(
|
||||||
|
[neither fsync_bdev() nor sync_blockdev() exist])
|
||||||
|
])
|
||||||
|
])
|
||||||
|
])
|
@ -162,6 +162,7 @@ AC_DEFUN([ZFS_AC_KERNEL_TEST_SRC], [
|
|||||||
ZFS_AC_KERNEL_SRC_RECLAIMED
|
ZFS_AC_KERNEL_SRC_RECLAIMED
|
||||||
ZFS_AC_KERNEL_SRC_REGISTER_SYSCTL_TABLE
|
ZFS_AC_KERNEL_SRC_REGISTER_SYSCTL_TABLE
|
||||||
ZFS_AC_KERNEL_SRC_COPY_SPLICE_READ
|
ZFS_AC_KERNEL_SRC_COPY_SPLICE_READ
|
||||||
|
ZFS_AC_KERNEL_SRC_SYNC_BDEV
|
||||||
case "$host_cpu" in
|
case "$host_cpu" in
|
||||||
powerpc*)
|
powerpc*)
|
||||||
ZFS_AC_KERNEL_SRC_CPU_HAS_FEATURE
|
ZFS_AC_KERNEL_SRC_CPU_HAS_FEATURE
|
||||||
@ -303,6 +304,7 @@ AC_DEFUN([ZFS_AC_KERNEL_TEST_RESULT], [
|
|||||||
ZFS_AC_KERNEL_RECLAIMED
|
ZFS_AC_KERNEL_RECLAIMED
|
||||||
ZFS_AC_KERNEL_REGISTER_SYSCTL_TABLE
|
ZFS_AC_KERNEL_REGISTER_SYSCTL_TABLE
|
||||||
ZFS_AC_KERNEL_COPY_SPLICE_READ
|
ZFS_AC_KERNEL_COPY_SPLICE_READ
|
||||||
|
ZFS_AC_KERNEL_SYNC_BDEV
|
||||||
case "$host_cpu" in
|
case "$host_cpu" in
|
||||||
powerpc*)
|
powerpc*)
|
||||||
ZFS_AC_KERNEL_CPU_HAS_FEATURE
|
ZFS_AC_KERNEL_CPU_HAS_FEATURE
|
||||||
|
@ -873,7 +873,13 @@ zvol_ioctl(struct block_device *bdev, fmode_t mode,
|
|||||||
|
|
||||||
switch (cmd) {
|
switch (cmd) {
|
||||||
case BLKFLSBUF:
|
case BLKFLSBUF:
|
||||||
|
#ifdef HAVE_FSYNC_BDEV
|
||||||
fsync_bdev(bdev);
|
fsync_bdev(bdev);
|
||||||
|
#elif defined(HAVE_SYNC_BLOCKDEV)
|
||||||
|
sync_blockdev(bdev);
|
||||||
|
#else
|
||||||
|
#error "Neither fsync_bdev() nor sync_blockdev() found"
|
||||||
|
#endif
|
||||||
invalidate_bdev(bdev);
|
invalidate_bdev(bdev);
|
||||||
rw_enter(&zv->zv_suspend_lock, RW_READER);
|
rw_enter(&zv->zv_suspend_lock, RW_READER);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user