Re: [PATCH v4 15/59] struct filename: saner handling of long names

From: Al Viro

Date: Tue Jan 13 2026 - 10:38:30 EST


On Tue, Jan 13, 2026 at 03:31:14PM +0000, Mark Brown wrote:

> I'm seeing a regression in -next in the execveat kselftest which bisects
> to 2a0db5f7653b ("struct filename: saner handling of long names"). The
> test triggers two new failures with very long filenames for tests that
> previously succeeded:
>
> # # Failed to open length 4094 filename, errno=36 (File name too long)
> # # Invoke exec via root_dfd and relative filename
> # # child execveat() failed, rc=-1 errno=36 (File name too long)
> # # child 9501 exited with 36 neither 99 nor 99
> # not ok 48 Check success of execveat(8, 'opt/kselftest/exec/x...yyyyyyyyyyyyyyyyyyyy', 0)...
> # # Failed to open length 4094 filename, errno=36 (File name too long)
> # # Invoke script via root_dfd and relative filename
> # # child execveat() failed, rc=-1 errno=36 (File name too long)
> # # child 9502 exited with 36 neither 127 nor 126
> # not ok 49 Check success of execveat(8, 'opt/kselftest/exec/x...yyyyyyyyyyyyyyyyyyyy', 0)...

Could you check if replacing (in include/linux/fs.h)

#define EMBEDDED_NAME_MAX 192 - sizeof(struct __filename_head)

with

#define EMBEDDED_NAME_MAX (192 - sizeof(struct __filename_head))

is sufficient for fixing that reproducer?