v1 -> v2 - Separate statx and open in io_kiocb - Remove external declarations for unused statx interfaces This patch set is a fix for the liburing statx test failure. The test fails with a "Miscompare between io_uring and statx" error because the statx system call path has additional processing in vfs_statx(): stat->result_mask |= STATX_MNT_ID; if (path.mnt->mnt_root == path.dentry) stat->attributes |= STATX_ATTR_MOUNT_ROOT; stat->attributes_mask |= STATX_ATTR_MOUNT_ROOT; which then results in different result_mask values. Allowing the system call to be invoked directly simplifies the io_uring interface and avoids potential future incompatibilities. I'm not sure if there was other reasoning fort not doing so initially. One issue I cannot account for is the difference in "used" memory reported by free(1) after running the statx a large (10000) number of times. The difference is significant ~100k and doesn't really change after dropping caches. I enabled memory leak detection and couldn't see anything related to the test. Bijan Mottahedeh (4): io_uring: add io_statx structure statx: allow system call to be invoked from io_uring io_uring: call statx directly statx: hide interfaces no longer used by io_uring fs/internal.h | 4 ++-- fs/io_uring.c | 72 +++++++++++++++-------------------------------------------- fs/stat.c | 37 +++++++++++++++++------------- 3 files changed, 42 insertions(+), 71 deletions(-) -- 1.8.3.1