From: Lennart Poettering Date: Mon, 9 Dec 2024 12:51:51 +0000 (+0100) Subject: discover-image: make sure quota logic works on O_PATH fds X-Git-Tag: v258-rc1~1833^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=476b7c3a689848671f9fff298b211562c969a59d;p=thirdparty%2Fsystemd.git discover-image: make sure quota logic works on O_PATH fds --- diff --git a/src/shared/discover-image.c b/src/shared/discover-image.c index 82be0b73d8a..35386dfc58f 100644 --- a/src/shared/discover-image.c +++ b/src/shared/discover-image.c @@ -295,10 +295,15 @@ static int image_update_quota(Image *i, int fd) { return -EOPNOTSUPP; if (fd < 0) { - fd_close = open(i->path, O_CLOEXEC|O_NOCTTY|O_DIRECTORY); + fd_close = open(i->path, O_CLOEXEC|O_DIRECTORY); if (fd_close < 0) return -errno; fd = fd_close; + } else { + /* Convert from O_PATH to proper fd, if needed */ + fd = fd_reopen_condition(fd, O_CLOEXEC|O_DIRECTORY, O_PATH, &fd_close); + if (fd < 0) + return fd; } r = btrfs_quota_scan_ongoing(fd);