This adds a tiny shortcut to fd_reopen(): if we are about to reopen the
fd via O_DIRECTORY then we know it#s a directory and we might as well
reopen it via opening "." using the fd as "at fd" in openat().
This has the benefit that we don't need /proc/self/fd/ around for this
special case: fewer sources of errors.
*
* This implicitly resets the file read index to 0. */
+ if (FLAGS_SET(flags, O_DIRECTORY)) {
+ /* If we shall reopen the fd as directory we can just go via "." and thus bypass the whole
+ * magic /proc/ directory, and make ourselves independent of that being mounted. */
+ new_fd = openat(fd, ".", flags);
+ if (new_fd < 0)
+ return -errno;
+
+ return new_fd;
+ }
+
new_fd = open(FORMAT_PROC_FD_PATH(fd), flags);
if (new_fd < 0) {
if (errno != ENOENT)