RFC: untangle and fix __blkdev_issue_discard

Christoph Hellwig
2024-03-07T15:12:01Z

Hi all,

this tries to address the block for-next oops Chandan reported on XFS.
I can't actually reproduce it unfortunately, but this series should
sort it out by movign the fatal_signal_pending check out of all but
the ioctl path. The write_zeroes and secure_erase path will need
similar treatment eventually.

Test with blktests and the xfstests discard group for xfs only. Note that
the latter has a pre-existing regression in generic/500 that I'll look
into in a bit.

Diffstat:
block/blk-lib.c | 78 +++++++++++++-------------------------
block/ioctl.c | 13 ++++--
drivers/md/dm-thin.c | 5 +-
drivers/md/md.c | 6 +-
drivers/nvme/target/io-cmd-bdev.c | 16 ++-----
fs/ext4/mballoc.c | 16 ++++---
fs/f2fs/segment.c | 10 ++--
fs/xfs/xfs_discard.c | 47 +++++++---------------
fs/xfs/xfs_discard.h | 2
include/linux/blkdev.h | 4 -
10 files changed, 84 insertions(+), 113 deletions(-)