2024-01-09 18:03:41

by David Howells

[permalink] [raw]
Subject: [PATCH 3/4] erofs: Don't use certain internal folio_*() functions

Filesystems should not be using folio->index not folio_index(folio) and
folio->mapping, not folio_mapping() or folio_file_mapping() in filesystem
code.

Change this automagically with:

perl -p -i -e 's/folio_mapping[(]([^)]*)[)]/\1->mapping/g' fs/erofs/*.c
perl -p -i -e 's/folio_file_mapping[(]([^)]*)[)]/\1->mapping/g' fs/erofs/*.c
perl -p -i -e 's/folio_index[(]([^)]*)[)]/\1->index/g' fs/erofs/*.c

Reported-by: Matthew Wilcox <[email protected]>
Signed-off-by: David Howells <[email protected]>
cc: Gao Xiang <[email protected]>
cc: Chao Yu <[email protected]>
cc: Yue Hu <[email protected]>
cc: Jeffle Xu <[email protected]>
cc: [email protected]
cc: [email protected]
---
fs/erofs/fscache.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/fs/erofs/fscache.c b/fs/erofs/fscache.c
index 87ff35bff8d5..bc12030393b2 100644
--- a/fs/erofs/fscache.c
+++ b/fs/erofs/fscache.c
@@ -165,10 +165,10 @@ static int erofs_fscache_read_folios_async(struct fscache_cookie *cookie,
static int erofs_fscache_meta_read_folio(struct file *data, struct folio *folio)
{
int ret;
- struct erofs_fscache *ctx = folio_mapping(folio)->host->i_private;
+ struct erofs_fscache *ctx = folio->mapping->host->i_private;
struct erofs_fscache_request *req;

- req = erofs_fscache_req_alloc(folio_mapping(folio),
+ req = erofs_fscache_req_alloc(folio->mapping,
folio_pos(folio), folio_size(folio));
if (IS_ERR(req)) {
folio_unlock(folio);
@@ -276,7 +276,7 @@ static int erofs_fscache_read_folio(struct file *file, struct folio *folio)
struct erofs_fscache_request *req;
int ret;

- req = erofs_fscache_req_alloc(folio_mapping(folio),
+ req = erofs_fscache_req_alloc(folio->mapping,
folio_pos(folio), folio_size(folio));
if (IS_ERR(req)) {
folio_unlock(folio);



2024-01-09 18:11:27

by Gao Xiang

[permalink] [raw]
Subject: Re: [PATCH 3/4] erofs: Don't use certain internal folio_*() functions



On 2024/1/10 02:01, David Howells wrote:
> Filesystems should not be using folio->index not folio_index(folio) and
> folio->mapping, not folio_mapping() or folio_file_mapping() in filesystem
> code.
>
> Change this automagically with:
>
> perl -p -i -e 's/folio_mapping[(]([^)]*)[)]/\1->mapping/g' fs/erofs/*.c
> perl -p -i -e 's/folio_file_mapping[(]([^)]*)[)]/\1->mapping/g' fs/erofs/*.c
> perl -p -i -e 's/folio_index[(]([^)]*)[)]/\1->index/g' fs/erofs/*.c
>
> Reported-by: Matthew Wilcox <[email protected]>
> Signed-off-by: David Howells <[email protected]>
> cc: Gao Xiang <[email protected]>
> cc: Chao Yu <[email protected]>
> cc: Yue Hu <[email protected]>
> cc: Jeffle Xu <[email protected]>
> cc: [email protected]
> cc: [email protected]

Thank you, David!

Reviewed-by: Gao Xiang <[email protected]>

(I've asked Jingbo to find some free slot to refine
this part for later compressed data adaption. Yet that
is another separate story. The patch looks good to me.)

Thanks,
Gao Xiang

> ---
> fs/erofs/fscache.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/fs/erofs/fscache.c b/fs/erofs/fscache.c
> index 87ff35bff8d5..bc12030393b2 100644
> --- a/fs/erofs/fscache.c
> +++ b/fs/erofs/fscache.c
> @@ -165,10 +165,10 @@ static int erofs_fscache_read_folios_async(struct fscache_cookie *cookie,
> static int erofs_fscache_meta_read_folio(struct file *data, struct folio *folio)
> {
> int ret;
> - struct erofs_fscache *ctx = folio_mapping(folio)->host->i_private;
> + struct erofs_fscache *ctx = folio->mapping->host->i_private;
> struct erofs_fscache_request *req;
>
> - req = erofs_fscache_req_alloc(folio_mapping(folio),
> + req = erofs_fscache_req_alloc(folio->mapping,
> folio_pos(folio), folio_size(folio));
> if (IS_ERR(req)) {
> folio_unlock(folio);
> @@ -276,7 +276,7 @@ static int erofs_fscache_read_folio(struct file *file, struct folio *folio)
> struct erofs_fscache_request *req;
> int ret;
>
> - req = erofs_fscache_req_alloc(folio_mapping(folio),
> + req = erofs_fscache_req_alloc(folio->mapping,
> folio_pos(folio), folio_size(folio));
> if (IS_ERR(req)) {
> folio_unlock(folio);
>