From: Ye Liu <ye.liu@linux.dev>
To: Oscar Salvador <osalvador@suse.de>, Hu Song <husong@kylinos.cn>
Cc: muchun.song@linux.dev, linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] hugetlbfs:inode: initialize 'error' variable at definition to reduce code redundancy
Date: Fri, 13 Jun 2025 17:58:38 +0800 [thread overview]
Message-ID: <cd358b16-b03d-4560-9d55-e1e1e502e674@linux.dev> (raw)
In-Reply-To: <aEh-wRb_j5seV2Iz@localhost.localdomain>
On 2025/6/11 02:51, Oscar Salvador wrote:
> On Mon, Jun 09, 2025 at 02:56:15PM +0800, Hu Song wrote:
>> Initialize the error variable to -ENOMEM at definition in
>> init_hugetlbfs_fs().This removes the need for a separate
>> initialization later and makes the code slightly more concise,
>> while still preserving the original logic.
>> No functional change intended.
>>
>> Signed-off-by: Hu Song <husong@kylinos.cn>
>> ---
>> fs/hugetlbfs/inode.c | 3 +--
>> 1 file changed, 1 insertion(+), 2 deletions(-)
>>
>> diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c
>> index e4de5425838d..390cddd5872c 100644
>> --- a/fs/hugetlbfs/inode.c
>> +++ b/fs/hugetlbfs/inode.c
>> @@ -1600,7 +1600,7 @@ static int __init init_hugetlbfs_fs(void)
>> {
>> struct vfsmount *mnt;
>> struct hstate *h;
>> - int error;
>> + int error = -ENOMEM;
>> int i;
>>
>> if (!hugepages_supported()) {
>> @@ -1608,7 +1608,6 @@ static int __init init_hugetlbfs_fs(void)
>> return -ENOTSUPP;
>> }
>>
>> - error = -ENOMEM;
>> hugetlbfs_inode_cachep = kmem_cache_create("hugetlbfs_inode_cache",
>> sizeof(struct hugetlbfs_inode_info),
>> 0, SLAB_ACCOUNT, init_once);
>
> Uhmf, I do not know.
>
> Often, we tend to use those declarations in order to mark what error
> code we will return if we fail the next operationg. E.g:
>
> error = -ENOMEM
> if (try_to_allocate)
> goto out;
>
> error = -EINVAL
> if (check_params)
> goto out;
>
> out:
> return error
>
I prefer the following format, as it avoids unnecessary assignments:
if (try_to_allocate) {
error = -ENOMEM
goto out;
}
if (check_params) {
error = -EINVAL
goto out;
}
out:
return error
> No really strong opinion here, but I'd vote for leave it as is?
Currently init_hugetlbfs_fs() pre-initializes the error variable
with -ENOMEM before the allocation that might fail. This creates
an unnecessary assignment in the success path.
Therefore, this change might be preferable:
diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c
index e4de5425838d..3fa7892ac865 100644
--- a/fs/hugetlbfs/inode.c
+++ b/fs/hugetlbfs/inode.c
@@ -1608,12 +1608,13 @@ static int __init init_hugetlbfs_fs(void)
return -ENOTSUPP;
}
- error = -ENOMEM;
hugetlbfs_inode_cachep = kmem_cache_create("hugetlbfs_inode_cache",
sizeof(struct hugetlbfs_inode_info),
0, SLAB_ACCOUNT, init_once);
- if (hugetlbfs_inode_cachep == NULL)
+ if (hugetlbfs_inode_cachep == NULL) {
+ error = -ENOMEM;
goto out;
+ }
error = register_filesystem(&hugetlbfs_fs_type);
if (error)
Thanks,
Ye
prev parent reply other threads:[~2025-06-13 9:59 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-06-09 6:56 [PATCH] hugetlbfs:inode: initialize 'error' variable at definition to reduce code redundancy Hu Song
2025-06-10 18:51 ` Oscar Salvador
2025-06-13 9:58 ` Ye Liu [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cd358b16-b03d-4560-9d55-e1e1e502e674@linux.dev \
--to=ye.liu@linux.dev \
--cc=husong@kylinos.cn \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=muchun.song@linux.dev \
--cc=osalvador@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.