affs: use memcpy_to_page and remove replace kmap_atomic()
authorDavid Sterba <dsterba@suse.com>
Tue, 12 Jul 2022 21:30:05 +0000 (23:30 +0200)
committerDavid Sterba <dsterba@suse.com>
Mon, 1 Aug 2022 17:53:31 +0000 (19:53 +0200)
The use of kmap() is being deprecated in favor of kmap_local_page()
where it is feasible. For kmap around a memcpy there's a convenience
helper memcpy_to_page that also makes the flush_dcache_page() redundant.

CC: Fabio M. De Francesco <fmdefrancesco@gmail.com>
Reviewed-by: Ira Weiny <ira.weiny@intel.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/affs/file.c

index cd00a4c..cefa222 100644 (file)
@@ -526,7 +526,6 @@ affs_do_readpage_ofs(struct page *page, unsigned to, int create)
        struct inode *inode = page->mapping->host;
        struct super_block *sb = inode->i_sb;
        struct buffer_head *bh;
-       char *data;
        unsigned pos = 0;
        u32 bidx, boff, bsize;
        u32 tmp;
@@ -545,15 +544,12 @@ affs_do_readpage_ofs(struct page *page, unsigned to, int create)
                        return PTR_ERR(bh);
                tmp = min(bsize - boff, to - pos);
                BUG_ON(pos + tmp > to || tmp > bsize);
-               data = kmap_atomic(page);
-               memcpy(data + pos, AFFS_DATA(bh) + boff, tmp);
-               kunmap_atomic(data);
+               memcpy_to_page(page, pos, AFFS_DATA(bh) + boff, tmp);
                affs_brelse(bh);
                bidx++;
                pos += tmp;
                boff = 0;
        }
-       flush_dcache_page(page);
        return 0;
 }