2023-02-08 11:29:23

by Jingbo Xu

[permalink] [raw]
Subject: [PATCH v2 1/2] erofs: update print symbols for various flags in trace

As new flags introduced, the corresponding print symbols for trace are
not added accordingly. Add these missing print symbols for these flags.

Also remove the print symbol for EROFS_GET_BLOCKS_RAW as it is going to
be removed soon.

Signed-off-by: Jingbo Xu <[email protected]>
---
v2: remove print symbol for EROFS_GET_BLOCKS_RAW
---
include/trace/events/erofs.h | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/include/trace/events/erofs.h b/include/trace/events/erofs.h
index e095d36db939..cf4a0d28b178 100644
--- a/include/trace/events/erofs.h
+++ b/include/trace/events/erofs.h
@@ -19,12 +19,17 @@ struct erofs_map_blocks;
{ 1, "DIR" })

#define show_map_flags(flags) __print_flags(flags, "|", \
- { EROFS_GET_BLOCKS_RAW, "RAW" })
+ { EROFS_GET_BLOCKS_FIEMAP, "FIEMAP" }, \
+ { EROFS_GET_BLOCKS_READMORE, "READMORE" }, \
+ { EROFS_GET_BLOCKS_FINDTAIL, "FINDTAIL" })

#define show_mflags(flags) __print_flags(flags, "", \
- { EROFS_MAP_MAPPED, "M" }, \
- { EROFS_MAP_META, "I" }, \
- { EROFS_MAP_ENCODED, "E" })
+ { EROFS_MAP_MAPPED, "M" }, \
+ { EROFS_MAP_META, "I" }, \
+ { EROFS_MAP_ENCODED, "E" }, \
+ { EROFS_MAP_FULL_MAPPED, "F" }, \
+ { EROFS_MAP_FRAGMENT, "R" }, \
+ { EROFS_MAP_PARTIAL_REF, "P" })

TRACE_EVENT(erofs_lookup,

--
2.19.1.6.gb485710b



2023-02-08 11:29:25

by Jingbo Xu

[permalink] [raw]
Subject: [PATCH v2 2/2] erofs: remove unused EROFS_GET_BLOCKS_RAW flag

For erofs_map_blocks() and erofs_map_blocks_flatmode(), the flags
argument is always EROFS_GET_BLOCKS_RAW. Thus remove the unused flags
parameter for these two functions.

Besides EROFS_GET_BLOCKS_RAW is originally introduced for reading
compressed (raw) data for compressed files. However it's never used
actually and let's remove it now.

Signed-off-by: Jingbo Xu <[email protected]>
---
fs/erofs/data.c | 14 ++++++--------
fs/erofs/fscache.c | 2 +-
fs/erofs/internal.h | 10 ++++------
3 files changed, 11 insertions(+), 15 deletions(-)

diff --git a/fs/erofs/data.c b/fs/erofs/data.c
index 2713257ee718..032e12dccb84 100644
--- a/fs/erofs/data.c
+++ b/fs/erofs/data.c
@@ -74,8 +74,7 @@ void *erofs_read_metabuf(struct erofs_buf *buf, struct super_block *sb,
}

static int erofs_map_blocks_flatmode(struct inode *inode,
- struct erofs_map_blocks *map,
- int flags)
+ struct erofs_map_blocks *map)
{
erofs_blk_t nblocks, lastblk;
u64 offset = map->m_la;
@@ -114,8 +113,7 @@ static int erofs_map_blocks_flatmode(struct inode *inode,
return 0;
}

-int erofs_map_blocks(struct inode *inode,
- struct erofs_map_blocks *map, int flags)
+int erofs_map_blocks(struct inode *inode, struct erofs_map_blocks *map)
{
struct super_block *sb = inode->i_sb;
struct erofs_inode *vi = EROFS_I(inode);
@@ -127,7 +125,7 @@ int erofs_map_blocks(struct inode *inode,
void *kaddr;
int err = 0;

- trace_erofs_map_blocks_enter(inode, map, flags);
+ trace_erofs_map_blocks_enter(inode, map, 0);
map->m_deviceid = 0;
if (map->m_la >= inode->i_size) {
/* leave out-of-bound access unmapped */
@@ -137,7 +135,7 @@ int erofs_map_blocks(struct inode *inode,
}

if (vi->datalayout != EROFS_INODE_CHUNK_BASED) {
- err = erofs_map_blocks_flatmode(inode, map, flags);
+ err = erofs_map_blocks_flatmode(inode, map);
goto out;
}

@@ -189,7 +187,7 @@ int erofs_map_blocks(struct inode *inode,
out:
if (!err)
map->m_llen = map->m_plen;
- trace_erofs_map_blocks_exit(inode, map, flags, 0);
+ trace_erofs_map_blocks_exit(inode, map, 0, err);
return err;
}

@@ -252,7 +250,7 @@ static int erofs_iomap_begin(struct inode *inode, loff_t offset, loff_t length,
map.m_la = offset;
map.m_llen = length;

- ret = erofs_map_blocks(inode, &map, EROFS_GET_BLOCKS_RAW);
+ ret = erofs_map_blocks(inode, &map);
if (ret < 0)
return ret;

diff --git a/fs/erofs/fscache.c b/fs/erofs/fscache.c
index 03de4dc99302..9658cf8689d9 100644
--- a/fs/erofs/fscache.c
+++ b/fs/erofs/fscache.c
@@ -197,7 +197,7 @@ static int erofs_fscache_data_read_slice(struct erofs_fscache_request *primary)
int ret;

map.m_la = pos;
- ret = erofs_map_blocks(inode, &map, EROFS_GET_BLOCKS_RAW);
+ ret = erofs_map_blocks(inode, &map);
if (ret)
return ret;

diff --git a/fs/erofs/internal.h b/fs/erofs/internal.h
index 48a2f33de15a..8a6ae820cd6d 100644
--- a/fs/erofs/internal.h
+++ b/fs/erofs/internal.h
@@ -401,16 +401,15 @@ struct erofs_map_blocks {
unsigned int m_flags;
};

-#define EROFS_GET_BLOCKS_RAW 0x0001
/*
* Used to get the exact decompressed length, e.g. fiemap (consider lookback
* approach instead if possible since it's more metadata lightweight.)
*/
-#define EROFS_GET_BLOCKS_FIEMAP 0x0002
+#define EROFS_GET_BLOCKS_FIEMAP 0x0001
/* Used to map the whole extent if non-negligible data is requested for LZMA */
-#define EROFS_GET_BLOCKS_READMORE 0x0004
+#define EROFS_GET_BLOCKS_READMORE 0x0002
/* Used to map tail extent for tailpacking inline or fragment pcluster */
-#define EROFS_GET_BLOCKS_FINDTAIL 0x0008
+#define EROFS_GET_BLOCKS_FINDTAIL 0x0004

enum {
Z_EROFS_COMPRESSION_SHIFTED = Z_EROFS_COMPRESSION_MAX,
@@ -458,8 +457,7 @@ void *erofs_read_metabuf(struct erofs_buf *buf, struct super_block *sb,
int erofs_map_dev(struct super_block *sb, struct erofs_map_dev *dev);
int erofs_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo,
u64 start, u64 len);
-int erofs_map_blocks(struct inode *inode,
- struct erofs_map_blocks *map, int flags);
+int erofs_map_blocks(struct inode *inode, struct erofs_map_blocks *map);
struct inode *erofs_iget(struct super_block *sb, erofs_nid_t nid);
int erofs_getattr(struct user_namespace *mnt_userns, const struct path *path,
struct kstat *stat, u32 request_mask,
--
2.19.1.6.gb485710b


2023-02-09 02:29:11

by Gao Xiang

[permalink] [raw]
Subject: Re: [PATCH v2 1/2] erofs: update print symbols for various flags in trace



On 2023/2/8 19:29, Jingbo Xu wrote:
> As new flags introduced, the corresponding print symbols for trace are
> not added accordingly. Add these missing print symbols for these flags.
>
> Also remove the print symbol for EROFS_GET_BLOCKS_RAW as it is going to
> be removed soon.
>
> Signed-off-by: Jingbo Xu <[email protected]>
> ---
> v2: remove print symbol for EROFS_GET_BLOCKS_RAW
> ---
> include/trace/events/erofs.h | 13 +++++++++----
> 1 file changed, 9 insertions(+), 4 deletions(-)
>
> diff --git a/include/trace/events/erofs.h b/include/trace/events/erofs.h
> index e095d36db939..cf4a0d28b178 100644
> --- a/include/trace/events/erofs.h
> +++ b/include/trace/events/erofs.h
> @@ -19,12 +19,17 @@ struct erofs_map_blocks;
> { 1, "DIR" })
>
> #define show_map_flags(flags) __print_flags(flags, "|", \
> - { EROFS_GET_BLOCKS_RAW, "RAW" })

Should we remove this in the next patch?
Otherwise it looks good to me.

Thanks,
Gao XIang

> + { EROFS_GET_BLOCKS_FIEMAP, "FIEMAP" }, \
> + { EROFS_GET_BLOCKS_READMORE, "READMORE" }, \
> + { EROFS_GET_BLOCKS_FINDTAIL, "FINDTAIL" })
>
> #define show_mflags(flags) __print_flags(flags, "", \
> - { EROFS_MAP_MAPPED, "M" }, \
> - { EROFS_MAP_META, "I" }, \
> - { EROFS_MAP_ENCODED, "E" })
> + { EROFS_MAP_MAPPED, "M" }, \
> + { EROFS_MAP_META, "I" }, \
> + { EROFS_MAP_ENCODED, "E" }, \
> + { EROFS_MAP_FULL_MAPPED, "F" }, \
> + { EROFS_MAP_FRAGMENT, "R" }, \
> + { EROFS_MAP_PARTIAL_REF, "P" })
>
> TRACE_EVENT(erofs_lookup,
>

2023-02-09 02:31:03

by Jingbo Xu

[permalink] [raw]
Subject: Re: [PATCH v2 1/2] erofs: update print symbols for various flags in trace



On 2/9/23 10:29 AM, Gao Xiang wrote:
>
>
> On 2023/2/8 19:29, Jingbo Xu wrote:
>> As new flags introduced, the corresponding print symbols for trace are
>> not added accordingly.  Add these missing print symbols for these flags.
>>
>> Also remove the print symbol for EROFS_GET_BLOCKS_RAW as it is going to
>> be removed soon.
>>
>> Signed-off-by: Jingbo Xu <[email protected]>
>> ---
>> v2: remove print symbol for EROFS_GET_BLOCKS_RAW
>> ---
>>   include/trace/events/erofs.h | 13 +++++++++----
>>   1 file changed, 9 insertions(+), 4 deletions(-)
>>
>> diff --git a/include/trace/events/erofs.h b/include/trace/events/erofs.h
>> index e095d36db939..cf4a0d28b178 100644
>> --- a/include/trace/events/erofs.h
>> +++ b/include/trace/events/erofs.h
>> @@ -19,12 +19,17 @@ struct erofs_map_blocks;
>>           { 1,        "DIR" })
>>     #define show_map_flags(flags) __print_flags(flags, "|",    \
>> -    { EROFS_GET_BLOCKS_RAW,    "RAW" })
>
> Should we remove this in the next patch?
> Otherwise it looks good to me.
>

Okay I will update this in the next version.

--
Thanks,
Jingbo