]> git.proxmox.com Git - mirror_zfs.git/commit
Linux 6.5 compat: blkdev changes
authorColeman Kane <ckane@colemankane.org>
Tue, 1 Aug 2023 15:37:20 +0000 (11:37 -0400)
committerGitHub <noreply@github.com>
Tue, 1 Aug 2023 15:37:20 +0000 (08:37 -0700)
commit43e8f6e37fddc31f23301cb70d466687bd205cd9
treef22c2e1668c9565672d6af220209aa0b991a57b0
parent3b8e318b7737fa40daf6abbc06ba31cd6ae8d572
Linux 6.5 compat: blkdev changes

Multiple changes to the blkdev API were introduced in Linux 6.5. This
includes passing (void* holder) to blkdev_put, adding a new
blk_holder_ops* arg to blkdev_get_by_path, adding a new blk_mode_t type
that replaces uses of fmode_t, and removing an argument from the release
handler on block_device_operations that we weren't using. The open
function definition has also changed to take gendisk* and blk_mode_t, so
update it accordingly, too.

Implement local wrappers for blkdev_get_by_path() and
vdev_blkdev_put() so that the in-line calls are cleaner, and place the
conditionally-compiled implementation details inside of both of these
local wrappers. Both calls are exclusively used within vdev_disk.c, at
this time.

Add blk_mode_is_open_write() to test FMODE_WRITE / BLK_OPEN_WRITE
The wrapper function is now used for testing using the appropriate
method for the kernel, whether the open mode is writable or not.

Emphasize fmode_t arg in zvol_release is not used

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Coleman Kane <ckane@colemankane.org>
Closes #15099
config/kernel-blkdev.m4
config/kernel-block-device-operations.m4
include/os/linux/kernel/linux/blkdev_compat.h
module/os/linux/zfs/vdev_disk.c
module/os/linux/zfs/zfs_vnops_os.c
module/os/linux/zfs/zpl_ctldir.c
module/os/linux/zfs/zvol_os.c