Re: [PATCH V2] ovl: fix mount fail because the upper doesn't have space

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Jul 19, 2023 at 11:54 AM Yunlong Xing <yunlong.xing@xxxxxxxxxx> wrote:
>
> The current ovlfs mount flow:
>
> ovl_fill_super
>  |_ovl_get_workdir
>     |_ovl_make_workdir
>        |_ovl_check_rename_whiteout
>
> In ovl_check_rename_whiteout(), a new file is attempted to create.But if
> the upper doesn't have space to do this, it will return error -ENOSPC,
> causing the mount fail. It means that if the upper is full, the overlayfs
> cannot be mounted.It is not reasonable, so this patch will omit this error
>  and continue mount flow.
>
> Fixes: cad218ab3320 ("ovl: check if upper fs supports RENAME_WHITEOUT")
> Cc: stable@xxxxxxxxxxxxxxx
> Signed-off-by: Yunlong Xing <yunlong.xing@xxxxxxxxxx>
> ---
> changes of v2: Following Amir's suggestion, assuming it is not supported
> if the check fails because the upper does't have space
> ---

Reviewed-by: Amir Goldstein <amir73il@xxxxxxxxx>

>  fs/overlayfs/super.c | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/fs/overlayfs/super.c b/fs/overlayfs/super.c
> index 5b069f1a1e44..2b33c56fe4d7 100644
> --- a/fs/overlayfs/super.c
> +++ b/fs/overlayfs/super.c
> @@ -744,12 +744,13 @@ static int ovl_make_workdir(struct super_block *sb, struct ovl_fs *ofs,
>
>         /* Check if upper/work fs supports RENAME_WHITEOUT */
>         err = ovl_check_rename_whiteout(ofs);
> -       if (err < 0)
> +       if (err < 0 && err != -ENOSPC)
>                 goto out;
>
> -       rename_whiteout = err;
> +       rename_whiteout = err > 0;
>         if (!rename_whiteout)
> -               pr_warn("upper fs does not support RENAME_WHITEOUT.\n");
> +               pr_warn("upper fs does not support RENAME_WHITEOUT (%i).\n,
> +                       err");
>
>         /*
>          * Check if upper/work fs supports (trusted|user).overlay.* xattr
> --
> 2.25.1
>




[Index of Archives]     [Linux Filesystems Devel]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux