mirror of
https://github.com/torvalds/linux.git
synced 2026-09-22 20:54:03 +02:00
buffer: set BIO_COMPLETE_IN_TASK for dropbehind writeback
Set BIO_COMPLETE_IN_TASK in __bh_submit() for write bios when the folio has dropbehind set, so that buffer_head writeback completions get deferred to task context where folio_end_dropbehind() can safely invalidate folios. Read completions are not deferred since dropbehind invalidation for reads is handled synchronously by the reader. Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Tal Zussman <tz2294@columbia.edu> Reviewed-by: Jan Kara <jack@suse.cz> Link: https://patch.msgid.link/20260730-blk-dontcache-v7-4-3e8e6850068d@columbia.edu Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
efbde6f9f4
commit
a2c924c240
|
|
@ -1203,6 +1203,9 @@ static void __bh_submit(struct buffer_head *bh, blk_opf_t opf,
|
|||
|
||||
bio = bio_alloc(bh->b_bdev, 1, opf, GFP_NOIO);
|
||||
|
||||
if (folio_test_dropbehind(bh->b_folio) && op_is_write(opf))
|
||||
bio_set_flag(bio, BIO_COMPLETE_IN_TASK);
|
||||
|
||||
if (IS_ENABLED(CONFIG_FS_ENCRYPTION))
|
||||
buffer_set_crypto_ctx(bio, bh, GFP_NOIO);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user