[PATCH] erofs: code cleanup by removing ifdef macro surrounding

Chao Yu yuchao0 at huawei.com
Wed May 27 11:55:17 AEST 2020


On 2020/5/26 18:35, Gao Xiang wrote:
> On Tue, May 26, 2020 at 06:29:00PM +0800, cgxu wrote:
>> On 5/26/20 5:49 PM, Gao Xiang wrote:
>>> Hi Chengguang,
>>>
>>> On Tue, May 26, 2020 at 05:03:43PM +0800, Chengguang Xu wrote:
>>>> Define erofs_listxattr and erofs_xattr_handlers to NULL when
>>>> CONFIG_EROFS_FS_XATTR is not enabled, then we can remove many
>>>> ugly ifdef macros in the code.
>>>>
>>>> Signed-off-by: Chengguang Xu <cgxu519 at mykernel.net>
>>>> ---
>>>> Only compile tested.
>>>>
>>>>   fs/erofs/inode.c | 6 ------
>>>>   fs/erofs/namei.c | 2 --
>>>>   fs/erofs/super.c | 4 +---
>>>>   fs/erofs/xattr.h | 7 ++-----
>>>>   4 files changed, 3 insertions(+), 16 deletions(-)
>>>>
>>>> diff --git a/fs/erofs/inode.c b/fs/erofs/inode.c
>>>> index 3350ab65d892..7dd4bbe9674f 100644
>>>> --- a/fs/erofs/inode.c
>>>> +++ b/fs/erofs/inode.c
>>>> @@ -311,27 +311,21 @@ int erofs_getattr(const struct path *path, struct kstat *stat,
>>>>   const struct inode_operations erofs_generic_iops = {
>>>>   	.getattr = erofs_getattr,
>>>> -#ifdef CONFIG_EROFS_FS_XATTR
>>>>   	.listxattr = erofs_listxattr,
>>>> -#endif
>>>
>>> It seems equivalent. And it seems ext2 and f2fs behave in the same way...
>>
>> I posted similar patch for ext2 and Jack merged to
>> his tree the other day, though that series also
>> included a real bugfix. I also posted similar patch
>> to f2fs, so if erofs and f2fs merge these patches
>> then all three will behave in the same way, ;-)
>>
>> You may refer below link for the detail.
>>
>> https://lore.kernel.org/linux-ext4/20200522044035.24190-2-cgxu519@mykernel.net/
> 
> Thanks for your link...
> 
>>
>>
>>> But I'm not sure whether we'd return 0 (if I didn't see fs/xattr.c by mistake)
>>> or -EOPNOTSUPP here... Some thoughts about this? >
>>> Anyway, I'm fine with that if return 0 is okay here, but I'd like to know your
>>> and Chao's thoughts about this... I will play with it later as well.

I'm okay with this change, please feel free to add:

Reviewed-by: Chao Yu <yuchao0 at huawei.com>

>>
>> Originally, we set erofs_listxattr to ->listxattr only
>> when the config macro CONFIG_EROFS_FS_XATTR is enabled,
>> it means that erofs_listxattr() never returns -EOPNOTSUPP
>> in any case, so actually there is no logic change here,
>> right?
> 
> Yeah, I agree there is no logic change, so I'm fine with the patch.
> But I'm little worry about if return 0 is actually wrong here...
> 
> see the return value at:
> http://man7.org/linux/man-pages/man2/listxattr.2.html

Yeah, I guess vfs should check that whether lower filesystem has set .listxattr
callback function to decide to return that value, something like:

static ssize_t
ecryptfs_listxattr(struct dentry *dentry, char *list, size_t size)
{
...
	if (!d_inode(lower_dentry)->i_op->listxattr) {
		rc = -EOPNOTSUPP;
		goto out;
	}
...
	rc = d_inode(lower_dentry)->i_op->listxattr(lower_dentry, list, size);
...
}


> 
> Thanks,
> Gao Xiang
> 
>>
>>
>> Thanks,
>> cgxu
>>
> 
> .
> 


More information about the Linux-erofs mailing list