[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20241114152743.2381672-17-axboe@kernel.dk>
Date: Thu, 14 Nov 2024 08:25:19 -0700
From: Jens Axboe <axboe@...nel.dk>
To: linux-mm@...ck.org,
linux-fsdevel@...r.kernel.org
Cc: hannes@...xchg.org,
clm@...a.com,
linux-kernel@...r.kernel.org,
willy@...radead.org,
kirill@...temov.name,
linux-btrfs@...r.kernel.org,
linux-ext4@...r.kernel.org,
linux-xfs@...r.kernel.org,
bfoster@...hat.com,
Jens Axboe <axboe@...nel.dk>
Subject: [PATCH 15/17] xfs: punt uncached write completions to the completion wq
They need non-irq context guaranteed, to be able to prune ranges from
the page cache. Treat them like unwritten extents and punt them to the
completion workqueue.
Signed-off-by: Jens Axboe <axboe@...nel.dk>
---
fs/xfs/xfs_aops.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/fs/xfs/xfs_aops.c b/fs/xfs/xfs_aops.c
index 559a3a577097..c86fc2b8f344 100644
--- a/fs/xfs/xfs_aops.c
+++ b/fs/xfs/xfs_aops.c
@@ -416,9 +416,12 @@ xfs_prepare_ioend(
memalloc_nofs_restore(nofs_flag);
- /* send ioends that might require a transaction to the completion wq */
+ /*
+ * Send ioends that might require a transaction or need blocking
+ * context to the completion wq
+ */
if (xfs_ioend_is_append(ioend) || ioend->io_type == IOMAP_UNWRITTEN ||
- (ioend->io_flags & IOMAP_F_SHARED))
+ (ioend->io_flags & (IOMAP_F_SHARED|IOMAP_F_UNCACHED)))
ioend->io_bio.bi_end_io = xfs_end_bio;
return status;
}
--
2.45.2
Powered by blists - more mailing lists