2022-08-22 11:48:09

by Zhiqiang Liu

[permalink] [raw]
Subject: [PATCH] xfs: donot need to check return value of xlog_kvmalloc()


In xfs_attri_log_nameval_alloc(), xlog_kvmalloc() is called
to alloc memory, which will always return
successfully, so we donot need to check return value.

Signed-off-by: Zhiqiang Liu <[email protected]>
---
fs/xfs/xfs_attr_item.c | 2 --
1 file changed, 2 deletions(-)

diff --git a/fs/xfs/xfs_attr_item.c b/fs/xfs/xfs_attr_item.c
index 5077a7ad5646..667e151a2bca 100644
--- a/fs/xfs/xfs_attr_item.c
+++ b/fs/xfs/xfs_attr_item.c
@@ -86,8 +86,6 @@ xfs_attri_log_nameval_alloc(
*/
nv = xlog_kvmalloc(sizeof(struct xfs_attri_log_nameval) +
name_len + value_len);
- if (!nv)
- return nv;

nv->name.i_addr = nv + 1;
nv->name.i_len = name_len;
--
2.33.0



2022-08-27 03:50:26

by Zhiqiang Liu

[permalink] [raw]
Subject: Re: [PATCH] xfs: donot need to check return value of xlog_kvmalloc()

friendly ping..

On 2022/8/22 19:46, Zhiqiang Liu wrote:
> In xfs_attri_log_nameval_alloc(), xlog_kvmalloc() is called
> to alloc memory, which will always return
> successfully, so we donot need to check return value.
>
> Signed-off-by: Zhiqiang Liu <[email protected]>
> ---
> fs/xfs/xfs_attr_item.c | 2 --
> 1 file changed, 2 deletions(-)
>
> diff --git a/fs/xfs/xfs_attr_item.c b/fs/xfs/xfs_attr_item.c
> index 5077a7ad5646..667e151a2bca 100644
> --- a/fs/xfs/xfs_attr_item.c
> +++ b/fs/xfs/xfs_attr_item.c
> @@ -86,8 +86,6 @@ xfs_attri_log_nameval_alloc(
> */
> nv = xlog_kvmalloc(sizeof(struct xfs_attri_log_nameval) +
> name_len + value_len);
> - if (!nv)
> - return nv;
>
> nv->name.i_addr = nv + 1;
> nv->name.i_len = name_len;

2022-08-29 16:17:01

by Eric Sandeen

[permalink] [raw]
Subject: Re: [PATCH] xfs: donot need to check return value of xlog_kvmalloc()

On 8/22/22 6:46 AM, Zhiqiang Liu wrote:
>
> In xfs_attri_log_nameval_alloc(), xlog_kvmalloc() is called
> to alloc memory, which will always return
> successfully, so we donot need to check return value.
>
> Signed-off-by: Zhiqiang Liu <[email protected]>

I think this is fine. xlog_kvmalloc loops until success, and its other
caller does not check the return value.

This isn't really strictly a fix (it's harmless) but it "fixes"

Fixes: commit 4183e4f27f402 ("xfs: share xattr name and value buffers when logging xattr updates")

Reviewed-by: Eric Sandeen <[email protected]>

That said, I think that xfs_attri_log_nameval_alloc() also cannot fail, so
perhaps its callers don't need checks either?

> ---
> fs/xfs/xfs_attr_item.c | 2 --
> 1 file changed, 2 deletions(-)
>
> diff --git a/fs/xfs/xfs_attr_item.c b/fs/xfs/xfs_attr_item.c
> index 5077a7ad5646..667e151a2bca 100644
> --- a/fs/xfs/xfs_attr_item.c
> +++ b/fs/xfs/xfs_attr_item.c
> @@ -86,8 +86,6 @@ xfs_attri_log_nameval_alloc(
> */
> nv = xlog_kvmalloc(sizeof(struct xfs_attri_log_nameval) +
> name_len + value_len);
> - if (!nv)
> - return nv;
>
> nv->name.i_addr = nv + 1;
> nv->name.i_len = name_len;

2022-08-31 09:57:50

by Zhiqiang Liu

[permalink] [raw]
Subject: Re: [PATCH] xfs: donot need to check return value of xlog_kvmalloc()


On 2022/8/30 0:06, Eric Sandeen wrote:
> On 8/22/22 6:46 AM, Zhiqiang Liu wrote:
>> In xfs_attri_log_nameval_alloc(), xlog_kvmalloc() is called
>> to alloc memory, which will always return
>> successfully, so we donot need to check return value.
>>
>> Signed-off-by: Zhiqiang Liu <[email protected]>
> I think this is fine. xlog_kvmalloc loops until success, and its other
> caller does not check the return value.
>
> This isn't really strictly a fix (it's harmless) but it "fixes"
>
> Fixes: commit 4183e4f27f402 ("xfs: share xattr name and value buffers when logging xattr updates")
>
> Reviewed-by: Eric Sandeen <[email protected]>

Thanks for your reply.

Before xlog_kvmalloc was changed to "loops until success", the sanity check was necessary.

As you said, this isn't really strictly a fix, so I think we should not add the Fix tag.

> That said, I think that xfs_attri_log_nameval_alloc() also cannot fail, so
> perhaps its callers don't need checks either?
Yes, you are right. I will clean it up in the V2 patch.

>> ---
>> fs/xfs/xfs_attr_item.c | 2 --
>> 1 file changed, 2 deletions(-)
>>
>> diff --git a/fs/xfs/xfs_attr_item.c b/fs/xfs/xfs_attr_item.c
>> index 5077a7ad5646..667e151a2bca 100644
>> --- a/fs/xfs/xfs_attr_item.c
>> +++ b/fs/xfs/xfs_attr_item.c
>> @@ -86,8 +86,6 @@ xfs_attri_log_nameval_alloc(
>> */
>> nv = xlog_kvmalloc(sizeof(struct xfs_attri_log_nameval) +
>> name_len + value_len);
>> - if (!nv)
>> - return nv;
>>
>> nv->name.i_addr = nv + 1;
>> nv->name.i_len = name_len;
> .