On Tue, Jul 18, 2023 at 11:35 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") > Signed-off-by: Yunlong Xing <yunlong.xing@xxxxxxxxxx> > --- > fs/overlayfs/super.c | 9 ++++++--- > 1 file changed, 6 insertions(+), 3 deletions(-) > > diff --git a/fs/overlayfs/super.c b/fs/overlayfs/super.c > index 5b069f1a1e44..2cf41e978cff 100644 > --- a/fs/overlayfs/super.c > +++ b/fs/overlayfs/super.c > @@ -744,9 +744,12 @@ 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) > - goto out; > - > + if (err < 0) { > + if (err == -ENOSPC) > + pr_warn("upper fs check RENAME_WHITEOUT fail due to no space.\n"); > + else > + goto out; > + } > rename_whiteout = err; > if (!rename_whiteout) > pr_warn("upper fs does not support RENAME_WHITEOUT.\n"); > -- This assumes that RENAME_WHITEOUT is supported. I rather assume it is not supported if the check fails. Like this is shorter (not tested): --- 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); Thanks, Amir.