diff --git a/src/basic/fd-util.c b/src/basic/fd-util.c index 4d6d01cd99..430db0c879 100644 --- a/src/basic/fd-util.c +++ b/src/basic/fd-util.c @@ -808,6 +808,18 @@ int fd_reopen_condition( return new_fd; } +int fd_is_opath(int fd) { + int r; + + assert(fd >= 0); + + r = fcntl(fd, F_GETFL); + if (r < 0) + return -errno; + + return FLAGS_SET(r, O_PATH); +} + int read_nr_open(void) { _cleanup_free_ char *nr_open = NULL; int r; diff --git a/src/basic/fd-util.h b/src/basic/fd-util.h index 952afdd64f..f5357860f5 100644 --- a/src/basic/fd-util.h +++ b/src/basic/fd-util.h @@ -104,6 +104,7 @@ static inline int make_null_stdio(void) { int fd_reopen(int fd, int flags); int fd_reopen_condition(int fd, int flags, int mask, int *ret_new_fd); +int fd_is_opath(int fd); int read_nr_open(void); int fd_get_diskseq(int fd, uint64_t *ret);