sync-util: port fsync_directory_of_file() to fd_is_opath()

As suggested here:

https://github.com/systemd/systemd/pull/26450#pullrequestreview-1302922404
This commit is contained in:
Lennart Poettering
2023-02-17 20:50:01 +09:00
committed by Yu Watanabe
parent 9857dc1117
commit 6ac55dfb46
+6 -10
View File
@@ -27,16 +27,12 @@ int fsync_directory_of_file(int fd) {
} else if (!S_ISREG(st.st_mode)) { /* Regular files are OK regardless if O_PATH or not, for all other
* types check O_PATH flag */
int flags;
flags = fcntl(fd, F_GETFL);
if (flags < 0)
return -errno;
if (!FLAGS_SET(flags, O_PATH)) /* If O_PATH this refers to the inode in the fs, in which case
* we can sensibly do what is requested. Otherwise this refers
* to a socket, fifo or device node, where the concept of a
* containing directory doesn't make too much sense. */
r = fd_is_opath(fd);
if (r < 0)
return r;
if (!r) /* If O_PATH this refers to the inode in the fs, in which case we can sensibly do
* what is requested. Otherwise this refers to a socket, fifo or device node, where
* the concept of a containing directory doesn't make too much sense. */
return -ENOTTY;
}