lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Wed, 19 Jul 2023 12:08:56 +0300
From:   Amir Goldstein <amir73il@...il.com>
To:     Yunlong Xing <yunlong.xing@...soc.com>
Cc:     miklos@...redi.hu, linux-unionfs@...r.kernel.org,
        linux-kernel@...r.kernel.org, zhiguo.niu@...soc.com,
        hongyu.jin@...soc.com, yunlongxing23@...il.com
Subject: Re: [PATCH V2] ovl: fix mount fail because the upper doesn't have space

On Wed, Jul 19, 2023 at 11:54 AM Yunlong Xing <yunlong.xing@...soc.com> 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@...r.kernel.org
> Signed-off-by: Yunlong Xing <yunlong.xing@...soc.com>
> ---
> 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@...il.com>

>  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
>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ