From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from ewsoutbound.kpnmail.nl (ewsoutbound.kpnmail.nl [195.121.94.184]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 70C86345750 for ; Tue, 31 Mar 2026 17:20:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=195.121.94.184 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774977619; cv=none; b=JrIDUFztRx4TuR7FsYXl4FvK2vJ7NJwwxTXuWSa5Z3pR/TeYTdBRXUUQvAk6hF7k0y3iZLSHceFhEVXhflycwgXuY8s4XbpNVqU2kLJbRUdANKWR3cNUEBUT9IzHRe4LEIQ9a+eZjnGslidB1HqaxNmSmuD8ZHMAQq+0xggOBKc= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774977619; c=relaxed/simple; bh=9a07OI6G1FdXoYEj20uLFgzwaAk/WzZPhJzya892ozs=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=cKwtSme1n3Hg9JqqFA81Ji6fRFFch/d4JyuXGR6tRM9uQLocY27TmMsoJZ9Zyw7u7FADqf+Z6aP5VSb6ea/rB6/0VrFGrToQpC+iubvXLazxEb4VP3LNXCFvzNT3IPxPAxYRJkm92bSRYk7US2Ka27sogjtER/KtvcUm/rekhoM= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=xs4all.nl; spf=pass smtp.mailfrom=xs4all.nl; dkim=pass (2048-bit key) header.d=xs4all.nl header.i=@xs4all.nl header.b=tqB1VxkX; arc=none smtp.client-ip=195.121.94.184 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=xs4all.nl Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=xs4all.nl Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=xs4all.nl header.i=@xs4all.nl header.b="tqB1VxkX" X-KPN-MessageId: de11ed37-2d25-11f1-afda-005056994fde Received: from smtp.kpnmail.nl (unknown [10.31.155.7]) by ewsoutbound.so.kpn.org (Halon) with ESMTPS id de11ed37-2d25-11f1-afda-005056994fde; Tue, 31 Mar 2026 19:20:08 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xs4all.nl; s=xs4all01; h=mime-version:message-id:date:subject:to:from; bh=SIY1aVd3TcIR+nTkIuM5SR5/9+HgkFFEgimZ8yE4G08=; b=tqB1VxkXY04rr1gw4sen7pOZ+4espDd5si4hmDvbDs3rI2V5zC6l9XiPEiOj85Ml7m46NJFPIFgbN PyC2DkHepNrlNZcf3dGv7IEj57keOh4w1I6sbxia37z7GfDHnwUSsxaS3N6GVpCyJZrEvlx2ojG/LE I4zc1CGQU+Mr6+56eBMgjL181Lx5CfFabpzOjokHsBf1Q5rWE9QAg5UrVpbdKYIJyUArZNOI3uWr6W CPYl7/yw0/fX9WXCaOEIhAYDBHTxVomB/OQi8BqPoEB5vVRseePONCGJQzRX98prtxkMLEjF5vbzT3 utSsfnQlE0eF+o8CxfP1auwtZyPndrQ== X-KPN-MID: 33|XhdlY57GqcJB9oU2yafxIvsJwRD0xG8SHogByN+EIthGLyczyWBdQ2S/dNClDRD cG/2KpUPLW1cZ4+fpJaskse1e5/a7GSk9YTLm0WWcpyI= X-KPN-VerifiedSender: Yes X-CMASSUN: 33|Bvc7FnJEwJFayum3+kDCzfBY/LJYd9rL59Eha9ifk0Jbk0xbsrPs+Z10Nufunsa 7payj/KUH2JoFtYqtlu00/Q== Received: from daedalus.home (unknown [178.227.25.158]) by smtp.xs4all.nl (Halon) with ESMTPSA id daba308f-2d25-11f1-86d5-005056998788; Tue, 31 Mar 2026 19:20:08 +0200 (CEST) From: Jori Koolstra To: Andy Lutomirski , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, Alexander Viro , Christian Brauner , Jeff Layton , Chuck Lever , Arnd Bergmann , Shuah Khan , Greg Kroah-Hartman Cc: "H . Peter Anvin" , Jan Kara , Alexander Aring , Peter Zijlstra , Oleg Nesterov , Andrey Albershteyn , Jiri Olsa , Mathieu Desnoyers , =?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= , Namhyung Kim , Arnaldo Carvalho de Melo , Aleksa Sarai , linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-api@vger.kernel.org, linux-arch@vger.kernel.org, linux-kselftest@vger.kernel.org, cmirabil@redhat.com, Jori Koolstra Subject: [RFC PATCH 0/2] vfs: mkdirat_fd() syscall Date: Tue, 31 Mar 2026 19:19:57 +0200 Message-ID: <20260331172011.3512876-1-jkoolstra@xs4all.nl> X-Mailer: git-send-email 2.53.0 Precedence: bulk X-Mailing-List: linux-api@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit This series implements the mkdirat_fd() syscall that was suggested over at the UAPI group kernel feature page [1] with some tests. Obviously, if we want this we should also implement mknodeat_fd() and symlinkat_fd(), but their implementation can be done quite similar I believe. I have added an unigned int flags like [2] suggests and an example flag that we may want to remove (it right now mainly serves an internal purpose). But it marks where I would want to place the definitions. This has been compiled and tested on x86 only. [2] is a bit confusing here and there, so I hope I have added the proper syscall definitions everywhere where they needs to be added. [1]: https://github.com/uapi-group/kernel-features?tab=readme-ov-file#race-free-creation-and-opening-of-non-file-inodes [2]: https://www.kernel.org/doc/html/latest/process/adding-syscalls.html Jori Koolstra (2): vfs: syscalls: add mkdirat_fd() selftest: add tests for mkdirat_fd() arch/x86/entry/syscalls/syscall_64.tbl | 1 + fs/internal.h | 1 + fs/namei.c | 26 +++- include/linux/fcntl.h | 2 + include/linux/syscalls.h | 2 + include/uapi/asm-generic/fcntl.h | 3 + include/uapi/asm-generic/unistd.h | 5 +- scripts/syscall.tbl | 1 + tools/include/uapi/asm-generic/unistd.h | 5 +- tools/testing/selftests/filesystems/Makefile | 4 +- .../selftests/filesystems/mkdirat_fd_test.c | 139 ++++++++++++++++++ 11 files changed, 183 insertions(+), 6 deletions(-) create mode 100644 tools/testing/selftests/filesystems/mkdirat_fd_test.c -- 2.53.0