summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndré Almeida <andrealmeid@igalia.com>2025-08-14 20:22:19 +0300
committerAmir Goldstein <amir73il@gmail.com>2025-09-23 13:29:36 +0300
commitdfc7da402ccc92d6e4b01a4778a3f15f2496b9af (patch)
tree32649769ca7ceef2f302690a13d5bf74d06afbf1
parentf9377faaeae0473ea45f2b6d3ff758e192f3f01d (diff)
downloadlinux-dfc7da402ccc92d6e4b01a4778a3f15f2496b9af.tar.xz
ovl: Check for casefold consistency when creating new dentries
In a overlayfs with casefold enabled, all new dentries should have casefold enabled as well. Check this at ovl_create_real(). Reviewed-by: Amir Goldstein <amir73il@gmail.com> Signed-off-by: André Almeida <andrealmeid@igalia.com> Signed-off-by: Amir Goldstein <amir73il@gmail.com>
-rw-r--r--fs/overlayfs/dir.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/fs/overlayfs/dir.c b/fs/overlayfs/dir.c
index dbd63a74df4b..538a1b2dbb38 100644
--- a/fs/overlayfs/dir.c
+++ b/fs/overlayfs/dir.c
@@ -187,6 +187,13 @@ struct dentry *ovl_create_real(struct ovl_fs *ofs, struct dentry *parent,
/* mkdir is special... */
newdentry = ovl_do_mkdir(ofs, dir, newdentry, attr->mode);
err = PTR_ERR_OR_ZERO(newdentry);
+ /* expect to inherit casefolding from workdir/upperdir */
+ if (!err && ofs->casefold != ovl_dentry_casefolded(newdentry)) {
+ pr_warn_ratelimited("wrong inherited casefold (%pd2)\n",
+ newdentry);
+ dput(newdentry);
+ err = -EINVAL;
+ }
break;
case S_IFCHR: