fs/mnt_idmapping.c: Return -EINVAL when no map is written

Message ID 20240206-mnt-idmap-inval-v1-1-68bfabb97533@me.com
State New
Headers
Series fs/mnt_idmapping.c: Return -EINVAL when no map is written |

Commit Message

Taylor Jackson via B4 Relay Feb. 6, 2024, 3:17 p.m. UTC
  From: Taylor Jackson <taylor.a.jackson@me.com>

This change will return an "invalid argument" error code when a map is
not provided when attempting to remap files using the id mapped mount
command, rather than returning nothing.

Signed-off-by: Taylor Jackson <taylor.a.jackson@me.com>
---
 fs/mnt_idmapping.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)


---
base-commit: 54be6c6c5ae8e0d93a6c4641cb7528eb0b6ba478
change-id: 20240206-mnt-idmap-inval-18d3a35f83fd

Best regards,
  

Comments

Christian Brauner Feb. 6, 2024, 4:06 p.m. UTC | #1
On Tue, Feb 06, 2024 at 03:17:52PM +0000, Taylor Jackson via B4 Relay wrote:
> From: Taylor Jackson <taylor.a.jackson@me.com>
> 
> This change will return an "invalid argument" error code when a map is
> not provided when attempting to remap files using the id mapped mount
> command, rather than returning nothing.

That should probably explain that before this change it was possible to
create an idmapped mount such that none of the inode's {g,u}id were
mapped and that now this is no longer possible.

> 
> Signed-off-by: Taylor Jackson <taylor.a.jackson@me.com>
> ---

Yup, that looks good to me. It seems unlikely that someone wants none of
the files in that mount to map to anything,

Reviewed-by: Christian Brauner <brauner@kernel.org>

>  fs/mnt_idmapping.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/fs/mnt_idmapping.c b/fs/mnt_idmapping.c
> index 64c5205e2b5e..3c60f1eaca61 100644
> --- a/fs/mnt_idmapping.c
> +++ b/fs/mnt_idmapping.c
> @@ -214,7 +214,7 @@ static int copy_mnt_idmap(struct uid_gid_map *map_from,
>  	 * anything at all.
>  	 */
>  	if (nr_extents == 0)
> -		return 0;
> +		return -EINVAL;
>  
>  	/*
>  	 * Here we know that nr_extents is greater than zero which means
> 
> ---
> base-commit: 54be6c6c5ae8e0d93a6c4641cb7528eb0b6ba478
> change-id: 20240206-mnt-idmap-inval-18d3a35f83fd
> 
> Best regards,
> -- 
> Taylor Jackson <taylor.a.jackson@me.com>
>
  

Patch

diff --git a/fs/mnt_idmapping.c b/fs/mnt_idmapping.c
index 64c5205e2b5e..3c60f1eaca61 100644
--- a/fs/mnt_idmapping.c
+++ b/fs/mnt_idmapping.c
@@ -214,7 +214,7 @@  static int copy_mnt_idmap(struct uid_gid_map *map_from,
 	 * anything at all.
 	 */
 	if (nr_extents == 0)
-		return 0;
+		return -EINVAL;
 
 	/*
 	 * Here we know that nr_extents is greater than zero which means