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>
This commit is contained in:
parent
f785785c0a
commit
598daf7520
@ -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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user