diff options
Diffstat (limited to 'main/btrfs-progs/musl-compat.patch')
-rw-r--r-- | main/btrfs-progs/musl-compat.patch | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/main/btrfs-progs/musl-compat.patch b/main/btrfs-progs/musl-compat.patch index 63e6220007..424c59d901 100644 --- a/main/btrfs-progs/musl-compat.patch +++ b/main/btrfs-progs/musl-compat.patch @@ -1,6 +1,7 @@ ---- a/utils.c -+++ b/utils.c -@@ -833,13 +833,19 @@ +diff -upr btrfs-progs-v4.3.1.orig/utils.c btrfs-progs-v4.3.1/utils.c +--- btrfs-progs-v4.3.1.orig/utils.c 2015-11-20 01:15:32.227019383 +0100 ++++ btrfs-progs-v4.3.1/utils.c 2015-11-20 01:16:59.419971215 +0100 +@@ -1208,13 +1208,19 @@ static int resolve_loop_device(const cha { int ret; FILE *f; @@ -12,12 +13,12 @@ if (!realpath(loop_dev, real_loop_dev)) return -errno; - snprintf(p, PATH_MAX, "/sys/block/%s/loop/backing_file", strrchr(real_loop_dev, '/')); -+ -+ if (stat(real_loop_dev, &stat_buf) || !S_ISBLK(stat_buf.st_mode)) -+ return -errno; + -+ snprintf(p, PATH_MAX, "/sys/dev/block/%d:%d/loop/backing_file", -+ major(stat_buf.st_rdev), minor(stat_buf.st_rdev)); - if (!(f = fopen(p, "r"))) - return -errno; - ++ if (stat(real_loop_dev, &stat_buf) || !S_ISBLK(stat_buf.st_mode)) ++ return -errno; ++ ++ snprintf(p, PATH_MAX, "/sys/dev/block/%d:%d/loop/backing_file", ++ major(stat_buf.st_rdev), minor(stat_buf.st_rdev)); + if (!(f = fopen(p, "r"))) { + if (errno == ENOENT) + /* |