diff options
author | Ryusuke Konishi | 2024-01-22 23:01:48 +0900 |
---|---|---|
committer | Andrew Morton | 2024-02-22 15:38:52 -0800 |
commit | 598daf7520d32db99ce424ac97acd861ae5d26e5 (patch) | |
tree | bc55bae941f23de514d6a8ed16889ca847941a73 /fs/nilfs2 | |
parent | f785785c0a545d2cb254a619a47bcbffa0ee07d3 (diff) |
nilfs2: convert recovery logic to use kmap_local
Patch series "nilfs2: eliminate kmap and kmap_atomic calls".
This series converts remaining kmap and kmap_atomic calls to use
kmap_local, mainly in metadata files, and eliminates calls to these
deprecated kmap functions from nilfs2.
This series does not include converting metadata files to use folios, but
it is a step in that direction.
Most conversions are straightforward, but some are not: the checkpoint
file, the inode file, and the persistent object allocator. These have
been adjusted or rewritten to avoid multiple kmap_local calls or nest them
if necessary, and to eliminate long waits like block I/O within the
highmem mapping sections.
This series has been tested in both 32-bit and 64-bit environments with
varying block sizes.
This patch (of 15):
In the recovery function when mounting, nilfs_recovery_copy_block() uses
the deprecated kmap_atomic(), so convert it to use kmap_local.
Link: https://lkml.kernel.org/r/20240122140202.6950-1-konishi.ryusuke@gmail.com
Link: https://lkml.kernel.org/r/20240122140202.6950-2-konishi.ryusuke@gmail.com
Signed-off-by: Ryusuke Konishi <konishi.ryusuke@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Diffstat (limited to 'fs/nilfs2')
-rw-r--r-- | fs/nilfs2/recovery.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/nilfs2/recovery.c b/fs/nilfs2/recovery.c index a9b8d77c8c1d..49a70c68bf3c 100644 --- a/fs/nilfs2/recovery.c +++ b/fs/nilfs2/recovery.c @@ -482,9 +482,9 @@ static int nilfs_recovery_copy_block(struct the_nilfs *nilfs, if (unlikely(!bh_org)) return -EIO; - kaddr = kmap_atomic(page); + kaddr = kmap_local_page(page); memcpy(kaddr + from, bh_org->b_data, bh_org->b_size); - kunmap_atomic(kaddr); + kunmap_local(kaddr); brelse(bh_org); return 0; } |