erofs: use memcpy_to_folio() to replace copy_to_iter()
authorGao Xiang <hsiangkao@linux.alibaba.com>
Wed, 9 Jul 2025 03:46:13 +0000 (11:46 +0800)
committerGao Xiang <hsiangkao@linux.alibaba.com>
Thu, 10 Jul 2025 09:08:26 +0000 (17:08 +0800)
Using copy_to_iter() here is overkill and even messy.

Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
Link: https://lore.kernel.org/r/20250709034614.2780117-1-hsiangkao@linux.alibaba.com
fs/erofs/fileio.c

index df5cc63f2c01eb5e7ec4afab9e054ea12cea7175..fe2cd2982b4b9cd4fd428c769f27867c88beeecd 100644 (file)
@@ -96,8 +96,6 @@ static int erofs_fileio_scan_folio(struct erofs_fileio *io, struct folio *folio)
        struct erofs_map_blocks *map = &io->map;
        unsigned int cur = 0, end = folio_size(folio), len, attached = 0;
        loff_t pos = folio_pos(folio), ofs;
-       struct iov_iter iter;
-       struct bio_vec bv;
        int err = 0;
 
        erofs_onlinefolio_init(folio);
@@ -122,13 +120,7 @@ static int erofs_fileio_scan_folio(struct erofs_fileio *io, struct folio *folio)
                                err = PTR_ERR(src);
                                break;
                        }
-                       bvec_set_folio(&bv, folio, len, cur);
-                       iov_iter_bvec(&iter, ITER_DEST, &bv, 1, len);
-                       if (copy_to_iter(src, len, &iter) != len) {
-                               erofs_put_metabuf(&buf);
-                               err = -EIO;
-                               break;
-                       }
+                       memcpy_to_folio(folio, cur, src, len);
                        erofs_put_metabuf(&buf);
                } else if (!(map->m_flags & EROFS_MAP_MAPPED)) {
                        folio_zero_segment(folio, cur, cur + len);