[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAOQ4uxhkiJ5weS575TLF+Xr83ZekwpqRC683dTDv8zsRYoj9+A@mail.gmail.com>
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