AT_FDCWD
return do_utimes(AT_FDCWD, filename, tvs ? tv : NULL, 0);
dentry = start_creating_user_path(AT_FDCWD, pathname, &path, LOOKUP_DIRECTORY);
dentry = start_creating_path(AT_FDCWD, name, &path, LOOKUP_DIRECTORY);
dentry = start_creating_path(AT_FDCWD, nodename, &path, 0);
dentry = start_creating_path(AT_FDCWD, nodename, &path, 0);
error = user_path_at(AT_FDCWD, data.path,
filename_unlinkat(AT_FDCWD, name);
if (fd == AT_FDCWD || filename->name[0] == '/') {
CLASS(bprm, bprm)(AT_FDCWD, filename, 0);
return do_execveat_common(AT_FDCWD, name,
return do_execveat_common(AT_FDCWD, name,
return do_open_execat(AT_FDCWD, filename, 0);
if (fd == AT_FDCWD) {
param->dirfd = AT_FDCWD;
if (!_key || !_value || (aux != AT_FDCWD && aux < 0))
err = syscall(SYS_renameat2, AT_FDCWD, from, AT_FDCWD, to, flags);
return filename_mknodat(AT_FDCWD, name, mode, dev);
return filename_linkat(AT_FDCWD, old, AT_FDCWD, new, 0);
return filename_symlinkat(old, AT_FDCWD, new);
return filename_unlinkat(AT_FDCWD, name);
return filename_mkdirat(AT_FDCWD, name, mode);
return filename_rmdir(AT_FDCWD, name);
if (nd->dfd == AT_FDCWD) {
error = filename_parentat(AT_FDCWD, filename, 0, &parent_path, &last,
error = filename_parentat(AT_FDCWD, filename, 0, &parent_path, &last, &type);
return filename_lookup(AT_FDCWD, filename, flags, path, NULL);
int err = __filename_parentat(AT_FDCWD, filename, flags, parent, last,
return filename_lookup(AT_FDCWD, filename, flags, path, &root);
return filename_mknodat(AT_FDCWD, name, mode, dev);
return filename_mkdirat(AT_FDCWD, name, mode);
return filename_rmdir(AT_FDCWD, name);
return filename_unlinkat(AT_FDCWD, name);
return filename_symlinkat(old, AT_FDCWD, new);
return filename_linkat(AT_FDCWD, old, AT_FDCWD, new, 0);
return filename_renameat2(AT_FDCWD, old, AT_FDCWD, new, 0);
ret = user_path_at(AT_FDCWD, name, lookup_flags, &path);
ret = user_path_at(AT_FDCWD, dir_name, LOOKUP_FOLLOW, &path);
error = user_path_at(AT_FDCWD, new_root,
error = user_path_at(AT_FDCWD, put_old,
error = user_path_at(AT_FDCWD, dirname, flags, path);
error = user_path_at(AT_FDCWD, oldname, 0, &old_path);
new_dentry = start_creating_user_path(AT_FDCWD, newname, &new_path, 0);
return do_file_open(AT_FDCWD, name, &op);
return do_sys_open(AT_FDCWD, filename, flags, mode);
error = filename_lookup(AT_FDCWD, name, lookup_flags, &path, NULL);
return do_sys_open(AT_FDCWD, filename, flags, mode);
return do_sys_open(AT_FDCWD, pathname, flags, mode);
return do_faccessat(AT_FDCWD, filename, mode, 0);
error = filename_lookup(AT_FDCWD, name, lookup_flags, &path, NULL);
error = filename_lookup(AT_FDCWD, name, lookup_flags, &path, NULL);
return do_fchmodat(AT_FDCWD, filename, mode, 0);
return do_fchownat(AT_FDCWD, filename, user, group, 0);
return do_fchownat(AT_FDCWD, filename, user, group,
ret = user_path_at(AT_FDCWD, addr, LOOKUP_FOLLOW|LOOKUP_AUTOMOUNT, &path);
return do_readlinkat(AT_FDCWD, path, buf, bufsiz);
error = filename_lookup(AT_FDCWD, name, lookup_flags, &path, NULL);
if (filename == NULL && dfd != AT_FDCWD)
return do_futimesat(AT_FDCWD, filename, utimes);
return do_utimes(AT_FDCWD, filename, times ? tv : NULL, 0);
return do_utimes(AT_FDCWD, filename, t ? tv : NULL, 0);
return do_compat_futimesat(AT_FDCWD, filename, t);
return path_listxattrat(AT_FDCWD, pathname, 0, list, size);
return path_listxattrat(AT_FDCWD, pathname, AT_SYMLINK_NOFOLLOW, list, size);
return path_removexattrat(AT_FDCWD, pathname, 0, name);
return path_removexattrat(AT_FDCWD, pathname, AT_SYMLINK_NOFOLLOW, name);
return path_setxattrat(AT_FDCWD, pathname, 0, name, value, size, flags);
return path_setxattrat(AT_FDCWD, pathname, AT_SYMLINK_NOFOLLOW, name,
return path_getxattrat(AT_FDCWD, pathname, 0, name, value, size);
return path_getxattrat(AT_FDCWD, pathname, AT_SYMLINK_NOFOLLOW, name,
error = user_path_at(AT_FDCWD, hreq->path, 0, &path);
return vfs_fstatat(AT_FDCWD, filename, stat, 0);
return vfs_fstatat(AT_FDCWD, name, stat, AT_SYMLINK_NOFOLLOW);
return do_fchownat(AT_FDCWD, filename, user, group, 0);
return do_fchownat(AT_FDCWD, filename, user, group,
ret = filename_getxattr(AT_FDCWD, name, LOOKUP_FOLLOW, &ix->ctx);
ret = filename_setxattr(AT_FDCWD, name, LOOKUP_FOLLOW, &ix->ctx);
path_fd = attr->file_flags & BPF_F_PATH_FD ? attr->path_fd : AT_FDCWD;
path_fd = attr->file_flags & BPF_F_PATH_FD ? attr->path_fd : AT_FDCWD;
return user_path_at(AT_FDCWD, upath, LOOKUP_FOLLOW, path);
dentry = start_creating_path(AT_FDCWD, addr->name->sun_path, &parent, 0);
FAN_FS_ERROR, AT_FDCWD, argv[1])) {
if (move_mount(mfd, "", AT_FDCWD, "/mnt", MOVE_MOUNT_F_EMPTY_PATH) < 0) {
ret = statx(AT_FDCWD, *argv, atflag, mask, &stx);
name_to_handle_at(AT_FDCWD, "/", &handle.fh, &mount_id, 0);
return __nolibc_syscall4(__NR_openat, AT_FDCWD, path, flags, mode);
return __nolibc_syscall4(__NR_fchmodat, AT_FDCWD, path, mode, 0);
return __nolibc_syscall5(__NR_fchownat, AT_FDCWD, path, owner, group, 0);
return __nolibc_syscall5(__NR_linkat, AT_FDCWD, old, AT_FDCWD, new, 0);
return __nolibc_syscall3(__NR_mkdirat, AT_FDCWD, path, mode);
return __nolibc_syscall3(__NR_unlinkat, AT_FDCWD, path, AT_REMOVEDIR);
return __nolibc_syscall4(__NR_mknodat, AT_FDCWD, path, mode, dev);
return __nolibc_syscall3(__NR_symlinkat, old, AT_FDCWD, new);
return __nolibc_syscall3(__NR_unlinkat, AT_FDCWD, path, 0);
return fstatat(AT_FDCWD, path, buf, 0);
return fstatat(AT_FDCWD, path, buf, AT_SYMLINK_NOFOLLOW);
return faccessat(AT_FDCWD, path, amode, 0);
if (faccessat(AT_FDCWD, sysfs_btf_path, F_OK, AT_EACCESS) < 0) {
if (faccessat(AT_FDCWD, path, R_OK, AT_EACCESS))
has_debugfs = faccessat(AT_FDCWD, DEBUGFS, F_OK, AT_EACCESS) == 0;
if (faccessat(AT_FDCWD, result, perm, AT_EACCESS) < 0)
if (faccessat(AT_FDCWD, ubuntu_kver_file, R_OK, AT_EACCESS) != 0)
man->has_sema_refcnt = faccessat(AT_FDCWD, ref_ctr_sysfs_path, F_OK, AT_EACCESS) == 0;
#ifndef AT_FDCWD
if (fd == AT_FDCWD)
#ifndef AT_FDCWD
openat(AT_FDCWD, filename, flags);
if (name_to_handle_at(AT_FDCWD, path, &handle.fh, &mount_id, 0) < 0)
if (name_to_handle_at(AT_FDCWD, path, &handle.fh, &mount_id, 0) < 0) {
dirfd = AT_FDCWD;
err = sys_move_mount(mnt_fd, "", AT_FDCWD, custom_dir, MOVE_MOUNT_F_EMPTY_PATH);
err = sys_move_mount(mnt_fd, "", AT_FDCWD, "/sys/fs/bpf", MOVE_MOUNT_F_EMPTY_PATH);
fail += check_execveat(AT_FDCWD, fullname, 0);
fail += check_execveat(AT_FDCWD, fullname_symlink, 0);
fail += check_execveat_fail(AT_FDCWD, fullname_symlink,
fail += check_execveat(AT_FDCWD, fullname_script, 0);
fail += check_execveat_fail(AT_FDCWD, "no-such-file", 0, ENOENT);
if (sys_move_mount(mntfd, "", AT_FDCWD, "/",
if (sys_move_mount(mntfd, "", AT_FDCWD, "/",
ret = renameat2(AT_FDCWD, argv[1], AT_FDCWD, argv[2], RENAME_EXCHANGE);
ASSERT_SUCCESS(move_mount(mfd, "", AT_FDCWD, "/tmp", MOVE_MOUNT_F_EMPTY_PATH));
return statx(AT_FDCWD, path, AT_STATX_FORCE_SYNC, STATX_BASIC_STATS,
fd_tree = sys_open_tree(AT_FDCWD, path,
ret = move_mount(AT_FDCWD, "/a", AT_FDCWD, "/b", 0);
ret = move_mount(mnt, "", AT_FDCWD, "/a", MOVE_MOUNT_F_EMPTY_PATH);
ret = move_mount(AT_FDCWD, "/a", AT_FDCWD, "/b", 0);
ret = move_mount(mnt, "", AT_FDCWD, "/a", MOVE_MOUNT_F_EMPTY_PATH);
FAN_OPEN, AT_FDCWD, "/");
fd_tree = sys_open_tree(AT_FDCWD, "/",
ret = sys_move_mount(fd_tree, "", AT_FDCWD, "/",
fd_tree = sys_open_tree(AT_FDCWD, "/",
ret = sys_move_mount(fd_tree, "", AT_FDCWD, "/",
fd_tree = sys_open_tree(AT_FDCWD, "/",
ret = sys_move_mount(fd_tree, "", AT_FDCWD, "/",
fd_tree = sys_open_tree(AT_FDCWD, "/",
ret = sys_move_mount(fd_tree, "", AT_FDCWD, "/",
fd_tree = sys_open_tree(AT_FDCWD, "/",
ret = sys_move_mount(fd_tree, "", AT_FDCWD, "/",
fd_tree = sys_open_tree(AT_FDCWD, "/",
ret = sys_move_mount(fd_tree, "", AT_FDCWD, "/",
ret = sys_move_mount(mnt_fd, "", AT_FDCWD, "/mnt_dir",
ret = sys_move_mount(mnt_fd, "", AT_FDCWD, "/mnt_dir",
self->fd = sys_open_tree(AT_FDCWD, variant->path, variant->flags);
self->fd = sys_open_tree(AT_FDCWD, variant->path, variant->flags);
self->fd = sys_open_tree(AT_FDCWD, "/", OPEN_TREE_NAMESPACE | OPEN_TREE_CLOEXEC);
fd = sys_open_tree(AT_FDCWD, "/",
fd = sys_open_tree(AT_FDCWD, "/",
fd = sys_open_tree(AT_FDCWD, "/",
fd = sys_open_tree(AT_FDCWD, "/",
fd = sys_open_tree(AT_FDCWD, "/",
fd = sys_open_tree(AT_FDCWD, "/",
fd = sys_open_tree(AT_FDCWD, self->tmpdir,
fd = sys_open_tree(AT_FDCWD, "/",
fd = sys_openat2(AT_FDCWD, ".", &how);
fd = raw_openat2(AT_FDCWD, ".", how_copy, test->size);
fd = sys_openat2(AT_FDCWD, path, &test->how);
fd = sys_openat2(AT_FDCWD, "/dev/null", &how);
fd = openat(AT_FDCWD, "/dev/null", O_RDONLY | __O_REGULAR);
if (sys_move_mount(tmpfs, "", AT_FDCWD, "/tmp", MOVE_MOUNT_F_EMPTY_PATH))
ret = statx(AT_FDCWD, "/", 0, 0, &sx);
ret = statx(AT_FDCWD, path, 0, mask, &sx);
ret = statx(AT_FDCWD, path, 0, STATX_MNT_ID_UNIQUE, &sx);
int fd = openat(AT_FDCWD, ".", O_PATH);
ASSERT_EQ(-1, renameat(AT_FDCWD, file1_s1d1, AT_FDCWD, file1_s2d1));
ASSERT_EQ(-1, renameat2(AT_FDCWD, file1_s1d1, AT_FDCWD, file1_s2d1,
ASSERT_EQ(-1, renameat(AT_FDCWD, bind_file1_s1d3, AT_FDCWD,
ASSERT_EQ(-1, renameat(AT_FDCWD, bind_file1_s1d3, AT_FDCWD,
ASSERT_EQ(0, renameat(AT_FDCWD, dir_s1d3, AT_FDCWD, dir_s4d2));
ASSERT_EQ(0, renameat(AT_FDCWD, dir_s1d3, AT_FDCWD, dir_s4d2));
ASSERT_EQ(0, syscall(__NR_move_mount, AT_FDCWD, dir_s3d2, AT_FDCWD,
ASSERT_EQ(0, syscall(__NR_move_mount, AT_FDCWD, dir_s1d2, AT_FDCWD,
ASSERT_EQ(-1, syscall(__NR_move_mount, AT_FDCWD, dir_s3d2, AT_FDCWD,
ASSERT_EQ(0, syscall(__NR_move_mount, AT_FDCWD, dir_s1d2, AT_FDCWD,
ASSERT_EQ(-1, syscall(__NR_move_mount, AT_FDCWD, dir_s3d2, AT_FDCWD,
dirfd = AT_FDCWD;
dirfd = AT_FDCWD;
dirfd = AT_FDCWD;
ret = sys_execveat(AT_FDCWD, path, argv, NULL,
if (renameat2(AT_FDCWD, oldpath, AT_FDCWD, newpath, RENAME_EXCHANGE))
ASSERT_EQ(-1, renameat2(AT_FDCWD, file1_s2d3, AT_FDCWD, file1_s1d3,
ASSERT_EQ(-1, renameat2(AT_FDCWD, file1_s2d3, AT_FDCWD, dir_s1d3,
ASSERT_EQ(-1, renameat2(AT_FDCWD, file1_s2d1, AT_FDCWD, file1_s1d3,
ASSERT_EQ(-1, renameat2(AT_FDCWD, dir_s2d2, AT_FDCWD, file1_s1d3,
ASSERT_EQ(-1, renameat2(AT_FDCWD, dir_s2d2, AT_FDCWD, file1_s2d1,
ASSERT_EQ(-1, renameat2(AT_FDCWD, file1_s2d1, AT_FDCWD, dir_s2d2,
ASSERT_EQ(0, renameat2(AT_FDCWD, file2_s2d3, AT_FDCWD, file1_s2d3,
ASSERT_EQ(0, renameat2(AT_FDCWD, file1_s2d2, AT_FDCWD, dir_s2d3,
ASSERT_EQ(0, renameat2(AT_FDCWD, file1_s2d2, AT_FDCWD, dir_s2d3,
ASSERT_EQ(-1, renameat2(AT_FDCWD, dir_s2d3, AT_FDCWD, dir_s1d3,
ASSERT_EQ(-1, renameat2(AT_FDCWD, file1_s2d2, AT_FDCWD, dir_s1d3,
ASSERT_EQ(-1, renameat2(AT_FDCWD, dir_s1d1, AT_FDCWD, dir_s2d1,
ASSERT_EQ(-1, renameat2(AT_FDCWD, file1_s1d1, AT_FDCWD, dir_s1d2,
ASSERT_EQ(0, renameat2(AT_FDCWD, dir_s1d3, AT_FDCWD, file1_s1d2,
open_tree(AT_FDCWD, dir_s1d1,
ASSERT_EQ(-1, renameat2(AT_FDCWD, file2_s1d1, AT_FDCWD, file1_s1d1,
ASSERT_EQ(-1, renameat2(AT_FDCWD, file1_s1d1, AT_FDCWD, file2_s1d1,
ASSERT_EQ(-1, renameat2(AT_FDCWD, file2_s1d1, AT_FDCWD, file2_s1d1,
ASSERT_EQ(-1, renameat2(AT_FDCWD, file1_s2d1, AT_FDCWD, file2_s1d1,
ASSERT_EQ(-1, renameat2(AT_FDCWD, file2_s1d1, AT_FDCWD, file1_s2d1,
ASSERT_EQ(-1, renameat2(AT_FDCWD, file1_s2d1, AT_FDCWD, file2_s1d3,
ASSERT_EQ(-1, renameat2(AT_FDCWD, file1_s2d2, AT_FDCWD, file2_s1d3,
ASSERT_EQ(0, renameat2(AT_FDCWD, file2_s2d3, AT_FDCWD, file1_s1d3,
ASSERT_EQ(-1, renameat2(AT_FDCWD, file1_s2d3, AT_FDCWD, dir_s1d3,
ASSERT_EQ(-1, renameat2(AT_FDCWD, dir_s1d3, AT_FDCWD, file1_s2d3,
ASSERT_EQ(-1, renameat2(AT_FDCWD, file1_s1d1, AT_FDCWD, file1_s2d3,
ASSERT_EQ(-1, renameat2(AT_FDCWD, file1_s2d3, AT_FDCWD, file1_s1d1,
ASSERT_EQ(-1, renameat2(AT_FDCWD, dir_file1_s1d2, AT_FDCWD,
ASSERT_EQ(-1, renameat2(AT_FDCWD, dir_file2_s2d3, AT_FDCWD,
ASSERT_EQ(0, renameat2(AT_FDCWD, dir_s1d3, AT_FDCWD, dir_s2d3,
ASSERT_EQ(0, renameat2(AT_FDCWD, dir_s2d3, AT_FDCWD, dir_s1d3,
ASSERT_EQ(0, renameat2(AT_FDCWD, dir_s2d3, AT_FDCWD, dir_file1_s1d2,
ASSERT_EQ(0, renameat2(AT_FDCWD, dir_file1_s1d2, AT_FDCWD, dir_s2d3,
ASSERT_EQ(0, renameat2(AT_FDCWD, file1_s2d2, AT_FDCWD, dir_file2_s2d3,
ASSERT_EQ(-1, renameat2(AT_FDCWD, dir_file2_s2d3, AT_FDCWD, file1_s2d2,
ASSERT_EQ(-1, renameat2(AT_FDCWD, file1_s2d2, AT_FDCWD, dir_file2_s2d3,
ASSERT_EQ(-1, renameat2(AT_FDCWD, file1_s1d1, AT_FDCWD, file1_s2d3,
ASSERT_EQ(-1, renameat2(AT_FDCWD, file1_s2d3, AT_FDCWD, file1_s1d1,
ASSERT_EQ(-1, renameat2(AT_FDCWD, dir_file1_s1d2, AT_FDCWD,
ASSERT_EQ(-1, renameat2(AT_FDCWD, dir_file2_s2d3, AT_FDCWD,
ASSERT_EQ(-1, renameat2(AT_FDCWD, dir_s1d3, AT_FDCWD, dir_s2d3,
ASSERT_EQ(-1, renameat2(AT_FDCWD, dir_s2d3, AT_FDCWD, dir_s1d3,
ASSERT_EQ(-1, renameat2(AT_FDCWD, dir_s2d3, AT_FDCWD, dir_file1_s1d2,
ASSERT_EQ(-1, renameat2(AT_FDCWD, dir_file1_s1d2, AT_FDCWD, dir_s2d3,
ASSERT_EQ(-1, renameat2(AT_FDCWD, file1_s2d2, AT_FDCWD, dir_file2_s2d3,
ASSERT_EQ(-1, renameat2(AT_FDCWD, dir_file2_s2d3, AT_FDCWD, file1_s2d2,
ASSERT_EQ(0, renameat2(AT_FDCWD, dir_file2_s2d3, AT_FDCWD, file1_s2d2,
ASSERT_EQ(-1, renameat2(AT_FDCWD, file1_s2d2, AT_FDCWD, dir_file2_s2d3,
ASSERT_EQ(-1, renameat2(AT_FDCWD, dir_file2_s2d3, AT_FDCWD, file1_s2d2,
ASSERT_EQ(-1, renameat2(AT_FDCWD, file1_s1d1, AT_FDCWD, dir_s2d2,
ASSERT_EQ(-1, renameat2(AT_FDCWD, file1_s1d1, AT_FDCWD, dir_s2d3,
ASSERT_EQ(0, renameat2(AT_FDCWD, file1_s2d2, AT_FDCWD, dir_s1d3,
ASSERT_EQ(-1, renameat2(AT_FDCWD, file1_s2d2, AT_FDCWD, dir_s1d3,
ASSERT_EQ(0, unlinkat(AT_FDCWD, dir_s1d3, AT_REMOVEDIR));
ASSERT_EQ(-1, unlinkat(AT_FDCWD, dir_s1d2, AT_REMOVEDIR));
ASSERT_EQ(-1, unlinkat(AT_FDCWD, dir_s1d1, AT_REMOVEDIR));
ASSERT_EQ(-1, unlinkat(AT_FDCWD, file1_s1d1, 0));
ASSERT_EQ(0, unlinkat(AT_FDCWD, file1_s1d3, 0));
return test_open_rel(AT_FDCWD, path, flags);
EXPECT_EQ(-1, renameat(bind_s1d3_fd, file1_name, AT_FDCWD,
ASSERT_EQ(0, renameat(bind_s1d3_fd, file2_name, AT_FDCWD, file1_s2d2))
ASSERT_EQ(0, renameat(AT_FDCWD, file1_s2d2, bind_s1d3_fd, file1_name))
ASSERT_EQ(0, linkat(bind_s1d3_fd, file1_name, AT_FDCWD, file1_s2d2, 0))
ASSERT_EQ(0, linkat(AT_FDCWD, file1_s2d2, bind_s1d3_fd, file2_name, 0))
ASSERT_EQ(0, test_renameat(AT_FDCWD, TMP_DIR "/s1d1/s1d2/s1d31/s1d41",
AT_FDCWD, TMP_DIR "/s3d1/s1d41"));
ASSERT_EQ(0, test_renameat(AT_FDCWD, TMP_DIR "/s1d1/s1d2/s1d32/s1d42",
AT_FDCWD, TMP_DIR "/s4d1/s1d42"));
ASSERT_EQ(0, test_renameat(AT_FDCWD, TMP_DIR "/s2d1/s2d2/s2d3",
AT_FDCWD, TMP_DIR "/s4d1/s2d3"));
EXPECT_EQ(-1, unlinkat(AT_FDCWD, dir_s1d3, AT_REMOVEDIR));
fd = openat(AT_FDCWD, target->target, open_mode | O_CLOEXEC);
ret = renameat(AT_FDCWD, file1_s1d1, AT_FDCWD, file1_s2d1);
ASSERT_EQ(-1, renameat(AT_FDCWD, file1_s1d1, AT_FDCWD, file1_s2d1));
ASSERT_EQ(-1, renameat(AT_FDCWD, file1_s1d1, AT_FDCWD, file1_s2d1));
ASSERT_EQ(-1, renameat(AT_FDCWD, file1_s1d1, AT_FDCWD, file1_s2d1));
ASSERT_EQ(-1, renameat(AT_FDCWD, file1_s1d1, AT_FDCWD, file2_s1d1));
ASSERT_EQ(-1, renameat(AT_FDCWD, file1_s1d1, AT_FDCWD, file1_s2d1));
ASSERT_EQ(-1, renameat(AT_FDCWD, file1_s1d1, AT_FDCWD, file2_s1d1));
ASSERT_EQ(-1, renameat(AT_FDCWD, file1_s1d1, AT_FDCWD, file1_s2d1));
ASSERT_EQ(-1, renameat(AT_FDCWD, file1_s1d1, AT_FDCWD, file1_s2d1));
ASSERT_EQ(-1, renameat(AT_FDCWD, file1_s1d1, AT_FDCWD, file1_s2d1));
ASSERT_EQ(-1, renameat(AT_FDCWD, file1_s1d1, AT_FDCWD, file1_s2d1));
ret = syscall(__NR_move_mount, AT_FDCWD, SET_GROUP_FROM,
AT_FDCWD, SET_GROUP_TO, MOVE_MOUNT_SET_GROUP);
dev = openat(AT_FDCWD, "/dev", O_DIRECTORY);
pidfd = open_by_handle_at(AT_FDCWD, fh, 0);
sys_execveat(AT_FDCWD, "pidfd_exec_helper", NULL, NULL, 0);
sys_execveat(AT_FDCWD, "pidfd_exec_helper", NULL, NULL, 0);
fd = openat(AT_FDCWD, "/tmp", O_WRONLY|O_EXCL|O_TMPFILE, 0700);
fd = openat(AT_FDCWD, "/tmp", O_WRONLY|O_TMPFILE, 0600);
if (linkat(fd, "", AT_FDCWD, "/tmp/1", AT_EMPTY_PATH) == -1) {
fd = openat(AT_FDCWD, "/tmp", O_WRONLY|O_TMPFILE, 0600);