O_DIRECTORY
zlo->data_dir = zloop_filp_open_fmt(O_RDONLY | O_DIRECTORY, 0, "%s/%u",
{ O_DIRECTORY, P9_DOTL_DIRECTORY },
flags = O_DIRECTORY; /* mds likes to know */
ceph_sys2wire(O_DIRECTORY);
#ifdef O_DIRECTORY /* fixme */
if ((flags & O_DIRECTORY) == O_DIRECTORY)
if (!(o_flags & O_DIRECTORY))
open_flag |= O_DIRECTORY;
if ((open_flags & O_DIRECTORY)) {
nn->rec_file = filp_open(user_recovery_dirname, O_RDONLY | O_DIRECTORY, 0);
#define O_PATH_FLAGS (O_DIRECTORY | O_NOFOLLOW | O_PATH | O_CLOEXEC)
if ((flags & (O_DIRECTORY | O_CREAT)) == (O_DIRECTORY | O_CREAT))
if (!(flags & O_DIRECTORY))
if (flags & O_DIRECTORY)
if (flags & O_DIRECTORY)
FASYNC | O_DIRECT | O_LARGEFILE | O_DIRECTORY | O_NOFOLLOW | \
{ O_DIRECTORY, "O_DIRECTORY" }, \
#ifndef O_DIRECTORY
#define O_TMPFILE (__O_TMPFILE | O_DIRECTORY)
{ O_DIRECTORY, "O_DIRECTORY" },
"{ 0x%x, \"O_DIRECTORY\" }, ", O_DIRECTORY);
procfd = open(path, O_DIRECTORY | O_RDONLY | O_CLOEXEC);
bpffs_fd = open(bpffs_path, O_DIRECTORY, O_RDWR);
test_dirfd = open(dir, O_PATH|O_DIRECTORY);
hwmon_dirfd = open(dir, O_PATH|O_DIRECTORY);
#ifndef O_DIRECTORY
int flags = O_RDONLY | O_DIRECTORY;
dirfd = open(dir, O_DIRECTORY);
#ifndef O_DIRECTORY
scripts_dir_fd = open(scripts_path, O_DIRECTORY);
lang_dir_fd = openat(scripts_dir_fd, lang_dirent->d_name, O_DIRECTORY);
fd_dir_fd = openat(proc_dir, buf, O_DIRECTORY);
fdinfo_dir_fd = openat(proc_dir, buf, O_DIRECTORY);
int proc_dir = open(procfs__mountpoint(), O_DIRECTORY);
fd_dir_fd = openat(dirfd(proc_dir), buf, O_DIRECTORY);
io_dir__init(&dir, open(path, O_CLOEXEC | O_DIRECTORY | O_RDONLY));
io_dir__init(&dir, open(path, O_CLOEXEC | O_DIRECTORY | O_RDONLY));
io_dir__init(&dir, open(pmu->hwmon_dir, O_CLOEXEC | O_DIRECTORY | O_RDONLY));
int dir = open(hwm->hwmon_dir, O_CLOEXEC | O_DIRECTORY | O_RDONLY);
io_dir__init(&class_hwmon_dir, open(buf, O_CLOEXEC | O_DIRECTORY | O_RDONLY));
hwmon_dir = open(buf, O_DIRECTORY);
int dir = open(hwm->hwmon_dir, O_CLOEXEC | O_DIRECTORY | O_RDONLY);
io_dir__init(&iod, open(path, O_CLOEXEC | O_DIRECTORY | O_RDONLY));
fd = perf_pmu__pathname_fd(dirfd, name, "format", O_DIRECTORY);
caps_fd = open(caps_path, O_CLOEXEC | O_DIRECTORY | O_RDONLY);
return open(path, O_DIRECTORY);
events_dir_fd = open(path, O_DIRECTORY);
events_dir_fd = openat(sysfs_fd, path, O_DIRECTORY, 0);
io_dir__init(&iod, open(filename, O_CLOEXEC | O_DIRECTORY | O_RDONLY));
io_dir__init(&evt_dir, open(evt_path, O_CLOEXEC | O_DIRECTORY | O_RDONLY));
io_dir__init(&events_dir, open(events_dir_path, O_CLOEXEC | O_DIRECTORY | O_RDONLY));
fd_target_dir = open(target_path, O_RDONLY | O_DIRECTORY);
fd_telem_dir = openat(dirfd(pmt_iter.dir), dirname->d_name, O_RDONLY | O_DIRECTORY);
#define O_TMPFILE (__O_TMPFILE | O_DIRECTORY)
cg_fd = open(optarg, O_DIRECTORY, O_RDONLY);
int ourpath_fd = open(our_path, O_RDONLY | O_DIRECTORY);
return open(dir, O_DIRECTORY | O_CLOEXEC | O_NOFOLLOW | O_PATH);
int subdir_dfd = open_or_die("subdir", O_DIRECTORY|O_RDONLY);
O_DIRECTORY|O_RDONLY);
int dot_dfd = open_or_die(".", O_DIRECTORY|O_RDONLY);
int root_dfd = open_or_die("/", O_DIRECTORY|O_RDONLY);
int dot_dfd_path = open_or_die(".", O_DIRECTORY|O_RDONLY|O_PATH);
int dot_dfd_cloexec = open_or_die(".", O_DIRECTORY|O_RDONLY|O_CLOEXEC);
dfd = open(dirname, O_PATH | O_DIRECTORY);
self->fd_proc_pid[i] = open(path, O_DIRECTORY | O_RDONLY | O_CLOEXEC);
layer_fds[i] = openat(fd_tmpfs, path, O_DIRECTORY);
fd_work = openat(fd_tmpfs, "w", O_DIRECTORY);
fd_upper = openat(fd_tmpfs, "u", O_DIRECTORY);
fd_lower = openat(fd_tmpfs, "l501", O_DIRECTORY);
layer_fds[0] = openat(fd_tmpfs, "w", O_DIRECTORY);
layer_fds[1] = openat(fd_tmpfs, "u", O_DIRECTORY);
layer_fds[2] = openat(fd_tmpfs, "l1", O_DIRECTORY);
layer_fds[3] = openat(fd_tmpfs, "l2", O_DIRECTORY);
layer_fds[0] = openat(fd_tmpfs, "w", O_DIRECTORY);
layer_fds[1] = openat(fd_tmpfs, "u", O_DIRECTORY);
layer_fds[2] = openat(fd_tmpfs, "l1", O_DIRECTORY);
layer_fds[3] = openat(fd_tmpfs, "l2", O_DIRECTORY);
layer_fds[0] = openat(fd_tmpfs, "w", O_DIRECTORY);
layer_fds[1] = openat(fd_tmpfs, "u", O_DIRECTORY);
layer_fds[2] = openat(fd_tmpfs, "l1", O_DIRECTORY);
layer_fds[3] = openat(fd_tmpfs, "l2", O_DIRECTORY);
layer_fds[i] = openat(fd_tmpfs, path, O_DIRECTORY | O_PATH);
fd_work = openat(fd_tmpfs, "w", O_DIRECTORY | O_PATH);
fd_upper = openat(fd_tmpfs, "u", O_DIRECTORY | O_PATH);
fd_lower = openat(fd_tmpfs, "l501", O_DIRECTORY | O_PATH);
layer_fds[0] = openat(fd_tmp, "upper", O_CLOEXEC | O_DIRECTORY | O_PATH);
layer_fds[1] = openat(fd_tmp, "work", O_CLOEXEC | O_DIRECTORY | O_PATH);
layer_fds[0] = openat(fd_tmpfs, "w", O_DIRECTORY);
layer_fds[1] = openat(fd_tmpfs, "u", O_DIRECTORY);
layer_fds[2] = openat(fd_tmpfs, "l1", O_DIRECTORY);
layer_fds[3] = openat(fd_tmpfs, "l2", O_DIRECTORY);
layer_fds[4] = openat(fd_tmpfs, "l3", O_DIRECTORY);
layer_fds[5] = openat(fd_tmpfs, "l4", O_DIRECTORY);
layer_fds[6] = openat(fd_tmpfs, "d1", O_DIRECTORY);
layer_fds[7] = openat(fd_tmpfs, "d2", O_DIRECTORY);
layer_fds[8] = openat(fd_tmpfs, "d3", O_DIRECTORY);
open("/tmp", O_PATH | O_NOFOLLOW | O_DIRECTORY | O_CLOEXEC);
open("/tmp", O_PATH | O_NOFOLLOW | O_DIRECTORY | O_CLOEXEC);
open("/tmp", O_PATH | O_NOFOLLOW | O_DIRECTORY | O_CLOEXEC);
ASSERT_EQ(-1, open("/", O_RDONLY | O_DIRECTORY | O_CLOEXEC));
dir_fd = open("/tmp", O_RDONLY | O_DIRECTORY | O_CLOEXEC);
dir_fd = open("/", O_RDONLY | O_DIRECTORY | O_CLOEXEC);
dir_fd = open("/tmp", O_RDONLY | O_DIRECTORY | O_CLOEXEC);
dir_fd = open("/", O_RDONLY | O_DIRECTORY | O_CLOEXEC);
EXPECT_EQ(-1, open("/", O_RDONLY | O_DIRECTORY | O_CLOEXEC));
EXPECT_EQ(-1, open("/", O_RDONLY | O_DIRECTORY | O_CLOEXEC));
EXPECT_EQ(-1, open("/", O_RDONLY | O_DIRECTORY | O_CLOEXEC));
EXPECT_EQ(-1, open("/", O_RDONLY | O_DIRECTORY | O_CLOEXEC));
ASSERT_EQ(EACCES, test_open(dir_s1d1, O_RDONLY | O_DIRECTORY));
ASSERT_EQ(EACCES, test_open(dir_s1d1, O_RDONLY | O_DIRECTORY));
ASSERT_EQ(EACCES, test_open(dir_s1d1, O_RDONLY | O_DIRECTORY));
ASSERT_EQ(EACCES, test_open(dir_s1d1, O_RDONLY | O_DIRECTORY));
ASSERT_EQ(EACCES, test_open(dir_s1d1, O_RDONLY | O_DIRECTORY));
ASSERT_EQ(EACCES, test_open(dir_s1d1, O_RDONLY | O_DIRECTORY));
ASSERT_EQ(EACCES, test_open(dir_s1d1, O_RDONLY | O_DIRECTORY));
ASSERT_EQ(EACCES, test_open(dir_s1d1, O_RDONLY | O_DIRECTORY));
ASSERT_EQ(EACCES, test_open(dir_s1d1, O_RDONLY | O_DIRECTORY));
ASSERT_EQ(EACCES, test_open(dir_s1d1, O_RDONLY | O_DIRECTORY));
ASSERT_EQ(0, test_open(dir_s1d2, O_RDONLY | O_DIRECTORY));
ASSERT_EQ(0, test_open(dir_s1d3, O_RDONLY | O_DIRECTORY));
ASSERT_EQ(EACCES, test_open(dir_s1d1, O_RDONLY | O_DIRECTORY));
ASSERT_EQ(0, test_open(dir_s1d2, O_RDONLY | O_DIRECTORY));
ASSERT_EQ(0, test_open(dir_s1d3, O_RDONLY | O_DIRECTORY));
ASSERT_EQ(EACCES, test_open(dir_s1d1, O_RDONLY | O_DIRECTORY));
ASSERT_EQ(0, test_open(dir_s1d2, O_RDONLY | O_DIRECTORY));
ASSERT_EQ(0, test_open(dir_s1d3, O_RDONLY | O_DIRECTORY));
ASSERT_EQ(EACCES, test_open(dir_s1d1, O_RDONLY | O_DIRECTORY));
ASSERT_EQ(0, test_open(dir_s1d2, O_RDONLY | O_DIRECTORY));
ASSERT_EQ(0, test_open(dir_s1d3, O_RDONLY | O_DIRECTORY));
ASSERT_EQ(EACCES, test_open(dir_s1d2, O_RDONLY | O_DIRECTORY));
ASSERT_EQ(0, test_open(dir_s1d3, O_RDONLY | O_DIRECTORY));
ASSERT_EQ(EACCES, test_open(dir_s1d2, O_RDONLY | O_DIRECTORY));
ASSERT_EQ(0, test_open(dir_s1d3, O_RDONLY | O_DIRECTORY));
dirfd = open(dir_s1d2, O_DIRECTORY);
ASSERT_EQ(0, test_open(dir_s1d1, O_RDONLY | O_DIRECTORY));
ASSERT_EQ(0, test_open(dir_s1d2, O_RDONLY | O_DIRECTORY));
ASSERT_EQ(0, test_open(dir_s2d1, O_RDONLY | O_DIRECTORY));
ASSERT_EQ(0, test_open(dir_s2d2, O_RDONLY | O_DIRECTORY));
ASSERT_EQ(EACCES, test_open(dir_s1d1, O_RDONLY | O_DIRECTORY));
ASSERT_EQ(0, test_open(dir_s1d2, O_RDONLY | O_DIRECTORY));
ASSERT_EQ(EACCES, test_open(dir_s2d1, O_RDONLY | O_DIRECTORY));
ASSERT_EQ(0, test_open(dir_s2d2, O_RDONLY | O_DIRECTORY));
ASSERT_EQ(0, test_open(bind_dir_s1d3, O_RDONLY | O_DIRECTORY));
ASSERT_EQ(EACCES, test_open(dir_s1d2, O_RDONLY | O_DIRECTORY));
ASSERT_EQ(EACCES, test_open(dir_s1d3, O_RDONLY | O_DIRECTORY));
ASSERT_EQ(EACCES, test_open(dir_s2d2, O_RDONLY | O_DIRECTORY));
ASSERT_EQ(EACCES, test_open(bind_dir_s1d3, O_RDONLY | O_DIRECTORY));
open(dir_s1d2, O_PATH | O_DIRECTORY | O_CLOEXEC);
EXPECT_EQ(0, test_open_rel(bind_s1d3_fd, "..", O_RDONLY | O_DIRECTORY));
test_open_rel(bind_s1d3_fd, "..", O_RDONLY | O_DIRECTORY));
ruleset_fd = open(dir_s1d1, O_PATH | O_DIRECTORY | O_CLOEXEC);
EXPECT_EQ(EACCES, test_open_rel(bind_s1d3_fd, "..", O_DIRECTORY));
ruleset_fd = open(dir_s1d1, O_DIRECTORY | O_CLOEXEC);
EXPECT_EQ(ENOENT, test_open_rel(bind_s1d3_fd, "..", O_DIRECTORY));
path_beneath.parent_fd = open(dir_s1d2, O_DIRECTORY | O_CLOEXEC);
open(TMP_DIR "/s2d1/s2d2", O_DIRECTORY | O_PATH | O_CLOEXEC);
open(dir_s1d2, O_PATH | O_DIRECTORY | O_CLOEXEC);
O_DIRECTORY | O_PATH | O_CLOEXEC);
O_DIRECTORY | O_PATH | O_CLOEXEC);
EXPECT_EQ(0, test_open_rel(s1d41_bind_fd, "..", O_DIRECTORY));
EXPECT_EQ(0, test_open_rel(s1d42_bind_fd, "..", O_DIRECTORY));
EXPECT_EQ(ENOENT, test_open_rel(s1d41_bind_fd, "..", O_DIRECTORY));
EXPECT_EQ(ENOENT, test_open_rel(s1d42_bind_fd, "..", O_DIRECTORY));
O_DIRECTORY | O_PATH | O_CLOEXEC);
open(TMP_DIR "/s3d1/s3d2", O_DIRECTORY | O_PATH | O_CLOEXEC);
open(dir_s1d2, O_PATH | O_DIRECTORY | O_CLOEXEC);
O_DIRECTORY | O_PATH | O_CLOEXEC);
EXPECT_EQ(0, test_open_rel(s1d3_bind_fd, "..", O_DIRECTORY));
EXPECT_EQ(0, test_open_rel(s1d3_bind_fd, "../..", O_DIRECTORY));
EXPECT_EQ(0, test_open_rel(s1d3_bind_fd, "..", O_DIRECTORY));
EXPECT_EQ(ENOENT, test_open_rel(s1d3_bind_fd, "../..", O_DIRECTORY));
test_open(path_entry, O_RDONLY | O_DIRECTORY));
test_open(path_entry, O_RDONLY | O_DIRECTORY));
ASSERT_EQ(0, test_open(path_entry, O_RDONLY | O_DIRECTORY));
ASSERT_EQ(0, test_open(path_entry, O_RDONLY | O_DIRECTORY));
open(TMP_DIR, O_PATH | O_DIRECTORY | O_CLOEXEC);
ASSERT_EQ(0, test_open(path_entry, O_RDONLY | O_DIRECTORY));
test_open(path_entry, O_RDONLY | O_DIRECTORY));
test_open(path_entry, O_RDONLY | O_DIRECTORY));
EXPECT_EQ(EACCES, test_open(dir_s1d1, O_DIRECTORY));
ASSERT_EQ(EACCES, test_open(dir_s1d1, O_RDONLY | O_DIRECTORY));
ASSERT_EQ(0, test_open(dir_s1d2, O_RDONLY | O_DIRECTORY));
ASSERT_EQ(0, test_open(dir_s1d3, O_RDONLY | O_DIRECTORY));
path_beneath.parent_fd = open("/dev", O_PATH | O_DIRECTORY | O_CLOEXEC);
if (open("/", O_RDONLY | O_DIRECTORY | O_CLOEXEC) >= 0) {
if (open("/", O_RDONLY | O_DIRECTORY | O_CLOEXEC) >= 0) {
dfd = open("/mnt/A/AA/B", O_DIRECTORY | O_CLOEXEC);
fd = open("/mnt/A", O_DIRECTORY | O_CLOEXEC);
fd = open_by_handle_at(FD_NSFS_ROOT, handle, O_DIRECTORY);
dev = openat(AT_FDCWD, "/dev", O_DIRECTORY);
ret = fd = open(dir, O_RDONLY | O_DIRECTORY, 0);
.how.flags = O_PATH | O_DIRECTORY },
dfd = open(dirname, O_PATH | O_DIRECTORY);
dfd = openat(rootfd, test->dir, O_PATH | O_DIRECTORY);
dfd = open(dirname, O_PATH | O_DIRECTORY);
tmpfd = openat(dfd, "root", O_PATH | O_DIRECTORY);
{ O_DIRECTORY, "O_DIRECTORY" },
proc_fd = open("/proc/self/ns", O_DIRECTORY | O_CLOEXEC);
pidfd = open("/proc/self", O_DIRECTORY | O_CLOEXEC);
pidfd = open(buf, O_DIRECTORY | O_CLOEXEC);
pidfd = open(buf, O_DIRECTORY | O_CLOEXEC);
pidfd = open("/proc/self", O_DIRECTORY | O_CLOEXEC);
pidfd = open("/proc/self", O_DIRECTORY | O_RDONLY | O_CLOEXEC);
fd = open("/", O_PATH|O_DIRECTORY);
fd = open("/", O_PATH|O_DIRECTORY);
fd0 = open("/", O_DIRECTORY|O_RDONLY);
dir_fd = open(buf, O_RDONLY|O_DIRECTORY);
fd = openat(dir_fd, "fd", O_RDONLY|O_DIRECTORY);
if (open("/", O_RDONLY|O_DIRECTORY|O_PATH) != 0) {
fd = openat(dirfd(d), de->d_name, O_DIRECTORY|O_RDONLY);