[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20250415231635.83960-7-dave@stgolabs.net>
Date: Tue, 15 Apr 2025 16:16:34 -0700
From: Davidlohr Bueso <dave@...olabs.net>
To: jack@...e.cz,
tytso@....edu,
adilger.kernel@...ger.ca,
brauner@...nel.org
Cc: mcgrof@...nel.org,
willy@...radead.org,
hare@...e.de,
djwong@...nel.org,
linux-ext4@...r.kernel.org,
linux-fsdevel@...r.kernel.org,
linux-mm@...ck.org,
Davidlohr Bueso <dave@...olabs.net>
Subject: [PATCH 6/7] fs/ext4: use sleeping version of sb_find_get_block()
Enable ext4_free_blocks() to use it, which has a cond_resched to begin
with. Convert to the new nonatomic flavor to benefit from potential
performance benefits and adapt in the future vs migration such that
semantics are kept.
Suggested-by: Jan Kara <jack@...e.cz>
Signed-off-by: Davidlohr Bueso <dave@...olabs.net>
---
fs/ext4/mballoc.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c
index f88424c28194..1e98c5be4e0a 100644
--- a/fs/ext4/mballoc.c
+++ b/fs/ext4/mballoc.c
@@ -6642,7 +6642,8 @@ void ext4_free_blocks(handle_t *handle, struct inode *inode,
for (i = 0; i < count; i++) {
cond_resched();
if (is_metadata)
- bh = sb_find_get_block(inode->i_sb, block + i);
+ bh = sb_find_get_block_nonatomic(inode->i_sb,
+ block + i);
ext4_forget(handle, is_metadata, inode, bh, block + i);
}
}
--
2.39.5
Powered by blists - more mailing lists