[PATCH v2] Corrected errno in minix_new_inode

Jori Koolstra posted 1 patch 2 months, 1 week ago
fs/minix/bitmap.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH v2] Corrected errno in minix_new_inode
Posted by Jori Koolstra 2 months, 1 week ago
The cases (!j || j > sbi->s_ninodes) can never occur unless the
filesystem is broken, so this should not return ENOSPC, but
EFSCORRUPTED.

Signed-off-by: Jori Koolstra <jkoolstra@xs4all.nl>
---
Changes in v2:
 - added unnecessary variable assignment back in the spirit of
   defensive programming after feedback from Jan Kara:
   https://lkml.org/lkml/2025/11/24/1278
---
 fs/minix/bitmap.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/minix/bitmap.c b/fs/minix/bitmap.c
index 7da66ca184f4..abec438330a7 100644
--- a/fs/minix/bitmap.c
+++ b/fs/minix/bitmap.c
@@ -247,7 +247,7 @@ struct inode *minix_new_inode(const struct inode *dir, umode_t mode)
 	j += i * bits_per_zone;
 	if (!j || j > sbi->s_ninodes) {
 		iput(inode);
-		return ERR_PTR(-ENOSPC);
+		return ERR_PTR(-EFSCORRUPTED);
 	}
 	inode_init_owner(&nop_mnt_idmap, inode, dir, mode);
 	inode->i_ino = j;
-- 
2.51.2
Re: [PATCH v2] Corrected errno in minix_new_inode
Posted by Jan Kara 2 months, 1 week ago
On Mon 01-12-25 13:23:38, Jori Koolstra wrote:
> The cases (!j || j > sbi->s_ninodes) can never occur unless the
> filesystem is broken, so this should not return ENOSPC, but
> EFSCORRUPTED.
> 
> Signed-off-by: Jori Koolstra <jkoolstra@xs4all.nl>

Looks good. Feel free to add:

Reviewed-by: Jan Kara <jack@suse.cz>

								Honza

> ---
> Changes in v2:
>  - added unnecessary variable assignment back in the spirit of
>    defensive programming after feedback from Jan Kara:
>    https://lkml.org/lkml/2025/11/24/1278
> ---
>  fs/minix/bitmap.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/fs/minix/bitmap.c b/fs/minix/bitmap.c
> index 7da66ca184f4..abec438330a7 100644
> --- a/fs/minix/bitmap.c
> +++ b/fs/minix/bitmap.c
> @@ -247,7 +247,7 @@ struct inode *minix_new_inode(const struct inode *dir, umode_t mode)
>  	j += i * bits_per_zone;
>  	if (!j || j > sbi->s_ninodes) {
>  		iput(inode);
> -		return ERR_PTR(-ENOSPC);
> +		return ERR_PTR(-EFSCORRUPTED);
>  	}
>  	inode_init_owner(&nop_mnt_idmap, inode, dir, mode);
>  	inode->i_ino = j;
> -- 
> 2.51.2
> 
-- 
Jan Kara <jack@suse.com>
SUSE Labs, CR