[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <bug-205957-13602-lXGDdKBUZc@https.bugzilla.kernel.org/>
Date: Thu, 09 Jan 2020 20:02:26 +0000
From: bugzilla-daemon@...zilla.kernel.org
To: linux-ext4@...r.kernel.org
Subject: [Bug 205957] Ext4 64 bit hash breaks 32 bit glibc 2.28+
https://bugzilla.kernel.org/show_bug.cgi?id=205957
--- Comment #16 from aladjev.andrew@...il.com (aladjev.andrew@...il.com) ---
We don't need to create a patch for kernel about this compat syscall, because
it already supports "__X32_SYSCALL_BIT". We need just to enable it using
"CONFIG_X86_X32=y" kernel config. Recompiled kernel will expose all x86 related
syscalls in x32 mode.
I've tested that "__X32_SYSCALL_BIT + 217" works completely the same as my
"SYS_getdents64_x32". Function "in_x32_syscall" works perfect.
We can patch glibc to redirect getdents64 syscall to x32 compatible one. My
previous assumption was wrong. Patching qemu will be very bad solution, because
it means that large file support will be broken in all applications, not only
glibc.
For now only glibc wants to convert dirent64 to dirent just by copying fields.
Regular application don't want to emulate getdents using getdents64 and it will
not touch dirent64. So we shouldn't interfere in qemu syscalls.
--
You are receiving this mail because:
You are watching the assignee of the bug.
Powered by blists - more mailing lists