From: Mike Yuan Date: Mon, 20 Jan 2025 20:15:46 +0000 (+0100) Subject: fs-util: introduce at_flags_normalize_nofollow() helper X-Git-Tag: v258-rc1~1536^2~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6981203f3a824ac3ceeb5a23c66942d5a284d9bb;p=thirdparty%2Fsystemd.git fs-util: introduce at_flags_normalize_nofollow() helper --- diff --git a/src/basic/fs-util.h b/src/basic/fs-util.h index 5ee7417eeb4..eb031a0ccde 100644 --- a/src/basic/fs-util.h +++ b/src/basic/fs-util.h @@ -163,3 +163,12 @@ static inline int xopenat_lock(int dir_fd, const char *path, int open_flags, Loc int link_fd(int fd, int newdirfd, const char *newpath); int linkat_replace(int olddirfd, const char *oldpath, int newdirfd, const char *newpath); + +static inline int at_flags_normalize_nofollow(int flags) { + if (FLAGS_SET(flags, AT_SYMLINK_FOLLOW)) { + assert(!FLAGS_SET(flags, AT_SYMLINK_NOFOLLOW)); + flags &= ~AT_SYMLINK_FOLLOW; + } else + flags |= AT_SYMLINK_NOFOLLOW; + return flags; +}