From: Lennart Poettering Date: Tue, 29 Nov 2022 14:30:55 +0000 (+0100) Subject: btrfs-util: convert to fd_reopen_condition() X-Git-Tag: v253-rc1~419^2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f1cab3d6dcb882f4537891e465dc2f080301015e;p=thirdparty%2Fsystemd.git btrfs-util: convert to fd_reopen_condition() --- diff --git a/src/shared/btrfs-util.c b/src/shared/btrfs-util.c index 4574a7899e1..41e01e0b10d 100644 --- a/src/shared/btrfs-util.c +++ b/src/shared/btrfs-util.c @@ -107,19 +107,11 @@ int btrfs_subvol_make_fd(int fd, const char *subvolume) { if (r < 0) return r; - r = fcntl(fd, F_GETFL); - if (r < 0) - return -errno; - if (FLAGS_SET(r, O_PATH)) { - /* An O_PATH fd was specified, let's convert here to a proper one, as btrfs ioctl's can't deal with - * O_PATH. */ - - real_fd = fd_reopen(fd, O_RDONLY|O_CLOEXEC|O_DIRECTORY); - if (real_fd < 0) - return real_fd; - - fd = real_fd; - } + /* If an O_PATH fd was specified, let's convert here to a proper one, as btrfs ioctl's can't deal + * with O_PATH. */ + fd = fd_reopen_condition(fd, O_RDONLY|O_CLOEXEC|O_DIRECTORY, O_PATH|O_DIRECTORY, &real_fd); + if (fd < 0) + return fd; strncpy(args.name, subvolume, sizeof(args.name)-1);