drop -ERESTARTSYS handling in blkdev_get_by_dev patch
ZFS 2.1.2 handles this internally (commit 16da688f2518526389e6bff8370684a1a2a1469c) Originally-by: Stoiko Ivanov <s.ivanov@proxmox.com> Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
This commit is contained in:
parent
290da2bec6
commit
76ce1e5017
@ -1,40 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
||||
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 <t.lamprecht@proxmox.com>
|
||||
---
|
||||
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);
|
Loading…
Reference in New Issue
Block a user