diff options
| author | André Almeida <andrealmeid@igalia.com> | 2025-08-14 14:22:19 -0300 |
|---|---|---|
| committer | Amir Goldstein <amir73il@gmail.com> | 2025-09-23 12:29:36 +0200 |
| commit | dfc7da402ccc92d6e4b01a4778a3f15f2496b9af (patch) | |
| tree | 32649769ca7ceef2f302690a13d5bf74d06afbf1 /fs/overlayfs | |
| parent | f9377faaeae0473ea45f2b6d3ff758e192f3f01d (diff) | |
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>
Diffstat (limited to 'fs/overlayfs')
| -rw-r--r-- | fs/overlayfs/dir.c | 7 |
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: |
