Messages in this thread Patch in this message | | | From | gouhao@uniontec ... | Subject | [PATCH] fs/buffer: adjust the order of might_sleep() in __getblk_gfp() | Date | Thu, 23 Mar 2023 17:37:52 +0800 |
| |
From: Gou Hao <gouhao@uniontech.com>
If 'bh' is found in cache, just return directly. might_sleep() is only required on slow paths.
Signed-off-by: Gou Hao <gouhao@uniontech.com> --- fs/buffer.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/fs/buffer.c b/fs/buffer.c index 9e1e2add541e..e13eff504fb5 100644 --- a/fs/buffer.c +++ b/fs/buffer.c @@ -1371,10 +1371,11 @@ __getblk_gfp(struct block_device *bdev, sector_t block, { struct buffer_head *bh = __find_get_block(bdev, block, size); + if (bh) + return bh; + might_sleep(); - if (bh == NULL) - bh = __getblk_slow(bdev, block, size, gfp); - return bh; + return __getblk_slow(bdev, block, size, gfp); } EXPORT_SYMBOL(__getblk_gfp); -- 2.20.1
| |