btrfs: defer I/O completion based on the btrfs_raid_bio
authorChristoph Hellwig <hch@lst.de>
Thu, 26 May 2022 07:36:36 +0000 (09:36 +0200)
committerDavid Sterba <dsterba@suse.com>
Mon, 25 Jul 2022 15:45:33 +0000 (17:45 +0200)
commitd34e123de1e66061051cd19e61b62fad6027fc4a
treeaf2ad6021df114983c803b53583755f1c32aadda
parentc93104e7588e04debb20bdc481e431f87748f3c1
btrfs: defer I/O completion based on the btrfs_raid_bio

Instead of attaching an extra allocation an indirect call to each
low-level bio issued by the RAID code, add a work_struct to struct
btrfs_raid_bio and only defer the per-rbio completion action.  The
per-bio action for all the I/Os are trivial and can be safely done
from interrupt context.

As a nice side effect this also allows sharing the boilerplate code
for the per-bio completions

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/ctree.h
fs/btrfs/disk-io.c
fs/btrfs/disk-io.h
fs/btrfs/raid56.c
fs/btrfs/raid56.h