[PATCH] ntfs: remove unreachable code in load_and_init_attrdef/upcase

Jiangshan Yi posted 1 patch 2 weeks, 4 days ago
fs/ntfs/super.c | 10 ++--------
1 file changed, 2 insertions(+), 8 deletions(-)
[PATCH] ntfs: remove unreachable code in load_and_init_attrdef/upcase
Posted by Jiangshan Yi 2 weeks, 4 days ago
Both load_and_init_attrdef() and load_and_init_upcase() open a system
inode with ntfs_iget() and, on error, run:

	if (IS_ERR(ino)) {
		if (!IS_ERR(ino))
			iput(ino);
		goto failed;
	}

The inner guard is the exact negation of the outer one, so
iput(ino) is dead code.  Drop the unreachable branch and collapse
the error check to a single statement.

No functional change.

Signed-off-by: Jiangshan Yi <yijiangshan@kylinos.cn>
---
 fs/ntfs/super.c | 10 ++--------
 1 file changed, 2 insertions(+), 8 deletions(-)

diff --git a/fs/ntfs/super.c b/fs/ntfs/super.c
index 60d43339c590..1b916deb7acc 100644
--- a/fs/ntfs/super.c
+++ b/fs/ntfs/super.c
@@ -1235,11 +1235,8 @@ static bool load_and_init_attrdef(struct ntfs_volume *vol)
 	ntfs_debug("Entering.");
 	/* Read attrdef table and setup vol->attrdef and vol->attrdef_size. */
 	ino = ntfs_iget(sb, FILE_AttrDef);
-	if (IS_ERR(ino)) {
-		if (!IS_ERR(ino))
-			iput(ino);
+	if (IS_ERR(ino))
 		goto failed;
-	}
 	NInoSetSparseDisabled(NTFS_I(ino));
 	/* FILE_AttrDef must hold at least one entry and fit inside 31 bits. */
 	i_size = i_size_read(ino);
@@ -1301,11 +1298,8 @@ static bool load_and_init_upcase(struct ntfs_volume *vol)
 	ntfs_debug("Entering.");
 	/* Read upcase table and setup vol->upcase and vol->upcase_len. */
 	ino = ntfs_iget(sb, FILE_UpCase);
-	if (IS_ERR(ino)) {
-		if (!IS_ERR(ino))
-			iput(ino);
+	if (IS_ERR(ino))
 		goto upcase_failed;
-	}
 	/*
 	 * The upcase size must not be above 64k Unicode characters, must not
 	 * be zero and must be a multiple of sizeof(__le16).
-- 
2.25.1
Re: [PATCH] ntfs: remove unreachable code in load_and_init_attrdef/upcase
Posted by Namjae Jeon 2 weeks, 3 days ago
On Mon, Sep 7, 2026 at 7:17 PM Jiangshan Yi <yijiangshan@kylinos.cn> wrote:
>
> Both load_and_init_attrdef() and load_and_init_upcase() open a system
> inode with ntfs_iget() and, on error, run:
>
>         if (IS_ERR(ino)) {
>                 if (!IS_ERR(ino))
>                         iput(ino);
>                 goto failed;
>         }
>
> The inner guard is the exact negation of the outer one, so
> iput(ino) is dead code.  Drop the unreachable branch and collapse
> the error check to a single statement.
>
> No functional change.
>
> Signed-off-by: Jiangshan Yi <yijiangshan@kylinos.cn>
Applied it to #ntfs-next.
Thanks!
Re: [PATCH] ntfs: remove unreachable code in load_and_init_attrdef/upcase
Posted by liubaolin 2 weeks, 3 days ago

在 2026/9/7 18:16, Jiangshan Yi 写道:
> Both load_and_init_attrdef() and load_and_init_upcase() open a system
> inode with ntfs_iget() and, on error, run:
> 
> 	if (IS_ERR(ino)) {
> 		if (!IS_ERR(ino))
> 			iput(ino);
> 		goto failed;
> 	}
> 
> The inner guard is the exact negation of the outer one, so
> iput(ino) is dead code.  Drop the unreachable branch and collapse
> the error check to a single statement.
> 
> No functional change.
> 
> Signed-off-by: Jiangshan Yi <yijiangshan@kylinos.cn>
> ---
>   fs/ntfs/super.c | 10 ++--------
>   1 file changed, 2 insertions(+), 8 deletions(-)
> 
> diff --git a/fs/ntfs/super.c b/fs/ntfs/super.c
> index 60d43339c590..1b916deb7acc 100644
> --- a/fs/ntfs/super.c
> +++ b/fs/ntfs/super.c
> @@ -1235,11 +1235,8 @@ static bool load_and_init_attrdef(struct ntfs_volume *vol)
>   	ntfs_debug("Entering.");
>   	/* Read attrdef table and setup vol->attrdef and vol->attrdef_size. */
>   	ino = ntfs_iget(sb, FILE_AttrDef);
> -	if (IS_ERR(ino)) {
> -		if (!IS_ERR(ino))
> -			iput(ino);
> +	if (IS_ERR(ino))
>   		goto failed;
> -	}
>   	NInoSetSparseDisabled(NTFS_I(ino));
>   	/* FILE_AttrDef must hold at least one entry and fit inside 31 bits. */
>   	i_size = i_size_read(ino);
> @@ -1301,11 +1298,8 @@ static bool load_and_init_upcase(struct ntfs_volume *vol)
>   	ntfs_debug("Entering.");
>   	/* Read upcase table and setup vol->upcase and vol->upcase_len. */
>   	ino = ntfs_iget(sb, FILE_UpCase);
> -	if (IS_ERR(ino)) {
> -		if (!IS_ERR(ino))
> -			iput(ino);
> +	if (IS_ERR(ino))
>   		goto upcase_failed;
> -	}
>   	/*
>   	 * The upcase size must not be above 64k Unicode characters, must not
>   	 * be zero and must be a multiple of sizeof(__le16).



Looks good to me.

Reviewed-by: Baolin Liu <liubaolin@kylinos.cn>