Message ID | 20220511193146.27526-7-krisman@collabora.com |
---|---|
State | Superseded |
Headers | show |
Series | Clean up the case-insensitive lookup path | expand |
On Wed, May 11, 2022 at 03:31:42PM -0400, Gabriel Krisman Bertazi wrote: > If the volume is in strict mode, ext4_ci_compare can report a broken > encoding name. This will not trigger on a bad lookup, which is caught > earlier, only if the actual disk name is bad. > > Signed-off-by: Gabriel Krisman Bertazi <krisman@collabora.com> > > --- > > Changes since v1: > - reword error message "file in directory" -> "filename" (Eric) > --- > fs/ext4/namei.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c > index cebbcabf0ff0..708811525411 100644 > --- a/fs/ext4/namei.c > +++ b/fs/ext4/namei.c > @@ -1458,6 +1458,9 @@ static bool ext4_match(struct inode *parent, > * only case where it happens is on a disk > * corruption or ENOMEM. > */ > + if (ret == -EINVAL) > + EXT4_ERROR_INODE(parent, > + "Bad encoded filename"); This message is still quite vague; perhaps it should be more specific about what a "bad" filename is? Maybe something like: "Directory contains filename that is not valid UTF-8" (or whatever the encoding being enforced is). - Eric
diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c index cebbcabf0ff0..708811525411 100644 --- a/fs/ext4/namei.c +++ b/fs/ext4/namei.c @@ -1458,6 +1458,9 @@ static bool ext4_match(struct inode *parent, * only case where it happens is on a disk * corruption or ENOMEM. */ + if (ret == -EINVAL) + EXT4_ERROR_INODE(parent, + "Bad encoded filename"); return false; } return ret;
If the volume is in strict mode, ext4_ci_compare can report a broken encoding name. This will not trigger on a bad lookup, which is caught earlier, only if the actual disk name is bad. Signed-off-by: Gabriel Krisman Bertazi <krisman@collabora.com> --- Changes since v1: - reword error message "file in directory" -> "filename" (Eric) --- fs/ext4/namei.c | 3 +++ 1 file changed, 3 insertions(+)