Linux 5.20 compat: bdevname()
As of the Linux 5.20 kernel bdevname() has been removed, all callers should use snprintf() and the "%pg" format specifier. Reviewed-by: Tony Hutter <hutter2@llnl.gov> Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Closes #13728
This commit is contained in:
parent
673aa7e6cf
commit
bebdf52a16
|
@ -294,6 +294,32 @@ AC_DEFUN([ZFS_AC_KERNEL_BLKDEV_BDEV_WHOLE], [
|
||||||
])
|
])
|
||||||
])
|
])
|
||||||
|
|
||||||
|
dnl #
|
||||||
|
dnl # 5.20 API change,
|
||||||
|
dnl # Removed bdevname(), snprintf(.., %pg) should be used.
|
||||||
|
dnl #
|
||||||
|
AC_DEFUN([ZFS_AC_KERNEL_SRC_BLKDEV_BDEVNAME], [
|
||||||
|
ZFS_LINUX_TEST_SRC([bdevname], [
|
||||||
|
#include <linux/fs.h>
|
||||||
|
#include <linux/blkdev.h>
|
||||||
|
], [
|
||||||
|
struct block_device *bdev __attribute__ ((unused)) = NULL;
|
||||||
|
char path[BDEVNAME_SIZE];
|
||||||
|
|
||||||
|
(void) bdevname(bdev, path);
|
||||||
|
])
|
||||||
|
])
|
||||||
|
|
||||||
|
AC_DEFUN([ZFS_AC_KERNEL_BLKDEV_BDEVNAME], [
|
||||||
|
AC_MSG_CHECKING([whether bdevname() exists])
|
||||||
|
ZFS_LINUX_TEST_RESULT([bdevname], [
|
||||||
|
AC_DEFINE(HAVE_BDEVNAME, 1, [bdevname() is available])
|
||||||
|
AC_MSG_RESULT(yes)
|
||||||
|
], [
|
||||||
|
AC_MSG_RESULT(no)
|
||||||
|
])
|
||||||
|
])
|
||||||
|
|
||||||
dnl #
|
dnl #
|
||||||
dnl # 5.19 API: blkdev_issue_secure_erase()
|
dnl # 5.19 API: blkdev_issue_secure_erase()
|
||||||
dnl # 3.10 API: blkdev_issue_discard(..., BLKDEV_DISCARD_SECURE)
|
dnl # 3.10 API: blkdev_issue_discard(..., BLKDEV_DISCARD_SECURE)
|
||||||
|
@ -377,6 +403,7 @@ AC_DEFUN([ZFS_AC_KERNEL_SRC_BLKDEV], [
|
||||||
ZFS_AC_KERNEL_SRC_BLKDEV_CHECK_DISK_CHANGE
|
ZFS_AC_KERNEL_SRC_BLKDEV_CHECK_DISK_CHANGE
|
||||||
ZFS_AC_KERNEL_SRC_BLKDEV_BDEV_CHECK_MEDIA_CHANGE
|
ZFS_AC_KERNEL_SRC_BLKDEV_BDEV_CHECK_MEDIA_CHANGE
|
||||||
ZFS_AC_KERNEL_SRC_BLKDEV_BDEV_WHOLE
|
ZFS_AC_KERNEL_SRC_BLKDEV_BDEV_WHOLE
|
||||||
|
ZFS_AC_KERNEL_SRC_BLKDEV_BDEVNAME
|
||||||
ZFS_AC_KERNEL_SRC_BLKDEV_ISSUE_SECURE_ERASE
|
ZFS_AC_KERNEL_SRC_BLKDEV_ISSUE_SECURE_ERASE
|
||||||
])
|
])
|
||||||
|
|
||||||
|
@ -391,6 +418,7 @@ AC_DEFUN([ZFS_AC_KERNEL_BLKDEV], [
|
||||||
ZFS_AC_KERNEL_BLKDEV_CHECK_DISK_CHANGE
|
ZFS_AC_KERNEL_BLKDEV_CHECK_DISK_CHANGE
|
||||||
ZFS_AC_KERNEL_BLKDEV_BDEV_CHECK_MEDIA_CHANGE
|
ZFS_AC_KERNEL_BLKDEV_BDEV_CHECK_MEDIA_CHANGE
|
||||||
ZFS_AC_KERNEL_BLKDEV_BDEV_WHOLE
|
ZFS_AC_KERNEL_BLKDEV_BDEV_WHOLE
|
||||||
|
ZFS_AC_KERNEL_BLKDEV_BDEVNAME
|
||||||
ZFS_AC_KERNEL_BLKDEV_GET_ERESTARTSYS
|
ZFS_AC_KERNEL_BLKDEV_GET_ERESTARTSYS
|
||||||
ZFS_AC_KERNEL_BLKDEV_ISSUE_SECURE_ERASE
|
ZFS_AC_KERNEL_BLKDEV_ISSUE_SECURE_ERASE
|
||||||
])
|
])
|
||||||
|
|
|
@ -105,6 +105,16 @@ bdev_whole(struct block_device *bdev)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(HAVE_BDEVNAME)
|
||||||
|
#define vdev_bdevname(bdev, name) bdevname(bdev, name)
|
||||||
|
#else
|
||||||
|
static inline void
|
||||||
|
vdev_bdevname(struct block_device *bdev, char *name)
|
||||||
|
{
|
||||||
|
snprintf(name, BDEVNAME_SIZE, "%pg", bdev);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Returns the maximum expansion capacity of the block device (in bytes).
|
* Returns the maximum expansion capacity of the block device (in bytes).
|
||||||
*
|
*
|
||||||
|
@ -204,7 +214,7 @@ vdev_disk_open(vdev_t *v, uint64_t *psize, uint64_t *max_psize,
|
||||||
|
|
||||||
if (bdev) {
|
if (bdev) {
|
||||||
if (v->vdev_expanding && bdev != bdev_whole(bdev)) {
|
if (v->vdev_expanding && bdev != bdev_whole(bdev)) {
|
||||||
bdevname(bdev_whole(bdev), disk_name + 5);
|
vdev_bdevname(bdev_whole(bdev), disk_name + 5);
|
||||||
/*
|
/*
|
||||||
* If userland has BLKPG_RESIZE_PARTITION,
|
* If userland has BLKPG_RESIZE_PARTITION,
|
||||||
* then it should have updated the partition
|
* then it should have updated the partition
|
||||||
|
|
Loading…
Reference in New Issue