From 76ce1e5017e2b3ad95f7fc5c2fde16cad31eaee1 Mon Sep 17 00:00:00 2001 From: Thomas Lamprecht Date: Tue, 11 Jan 2022 12:06:25 +0100 Subject: [PATCH] drop -ERESTARTSYS handling in blkdev_get_by_dev patch ZFS 2.1.2 handles this internally (commit 16da688f2518526389e6bff8370684a1a2a1469c) Originally-by: Stoiko Ivanov Signed-off-by: Thomas Lamprecht --- ...ove-the-ERESTARTSYS-handling-in-blkd.patch | 40 ------------------- 1 file changed, 40 deletions(-) delete mode 100644 patches/kernel/0008-Revert-block-remove-the-ERESTARTSYS-handling-in-blkd.patch diff --git a/patches/kernel/0008-Revert-block-remove-the-ERESTARTSYS-handling-in-blkd.patch b/patches/kernel/0008-Revert-block-remove-the-ERESTARTSYS-handling-in-blkd.patch deleted file mode 100644 index 6c51c6e..0000000 --- a/patches/kernel/0008-Revert-block-remove-the-ERESTARTSYS-handling-in-blkd.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Thomas Lamprecht -Date: Tue, 9 Nov 2021 12:01:12 +0100 -Subject: [PATCH] Revert "block: remove the -ERESTARTSYS handling in - blkdev_get_by_dev" - -This reverts commit a8ed1a0607cfa5478ff6009539f44790c4d0956d. - -It breaks ZFS sometimes: -https://github.com/openzfs/zfs/issues/12301#issuecomment-873303739 - -Signed-off-by: Thomas Lamprecht ---- - block/bdev.c | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/block/bdev.c b/block/bdev.c -index 485a258b0ab3..f93165f05987 100644 ---- a/block/bdev.c -+++ b/block/bdev.c -@@ -800,6 +800,10 @@ struct block_device *blkdev_get_by_dev(dev_t dev, fmode_t mode, void *holder) - if (ret) - return ERR_PTR(ret); - -+ /* -+ * If we lost a race with 'disk' being deleted, try again. See md.c. -+ */ -+retry: - bdev = blkdev_get_no_open(dev); - if (!bdev) - return ERR_PTR(-ENXIO); -@@ -852,6 +856,8 @@ struct block_device *blkdev_get_by_dev(dev_t dev, fmode_t mode, void *holder) - disk_unblock_events(disk); - put_blkdev: - blkdev_put_no_open(bdev); -+ if (ret == -ERESTARTSYS) -+ goto retry; - return ERR_PTR(ret); - } - EXPORT_SYMBOL(blkdev_get_by_dev);