From: Keith Busch <kbusch@xxxxxxxxxx> If a user runs something like `blkdiscard -z /dev/sda`, and the device does not have an efficient write zero offload, the kernel will dispatch long chains of bio's using the ZERO_PAGE for the entire capacity of the device. If the capacity is very large, this process could take a long time in an uninterruptable state, which the user may want to abort. Check between batches for the user's request to kill the process so they don't need to wait potentially many hours. Signed-off-by: Keith Busch <kbusch@xxxxxxxxxx> --- block/blk-lib.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/block/blk-lib.c b/block/blk-lib.c index e59c3069e8351..d5c334aa98e0d 100644 --- a/block/blk-lib.c +++ b/block/blk-lib.c @@ -190,6 +190,8 @@ static int __blkdev_issue_zero_pages(struct block_device *bdev, break; } cond_resched(); + if (fatal_signal_pending(current)) + break; } *biop = bio; -- 2.34.1