1
0
Fork 0

Merging upstream version 4.3+20241202.

Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
Daniel Baumann 2025-02-14 06:37:23 +01:00
parent 1eb55d062a
commit 72807d3921
Signed by: daniel
GPG key ID: FBB4F0E80A80222F
22 changed files with 325 additions and 402 deletions

View file

@ -200,28 +200,32 @@ bitmap_file_open(char *filename, struct supertype **stp, int node_num, int fd)
close(fd);
return -1;
}
if ((stb.st_mode & S_IFMT) == S_IFBLK) {
/* block device, so we are probably after an internal bitmap */
if (!st)
st = guess_super(fd);
if (!st) {
/* just look at device... */
lseek(fd, 0, 0);
} else if (!st->ss->locate_bitmap) {
pr_err("No bitmap possible with %s metadata\n",
st->ss->name);
close(fd);
return -1;
} else {
if (st->ss->locate_bitmap(st, fd, node_num)) {
pr_err("%s doesn't have bitmap\n", filename);
close(fd);
fd = -1;
}
}
*stp = st;
if ((stb.st_mode & S_IFMT) != S_IFBLK) {
pr_err("bitmap file is not supported %s\n", filename);
close(fd);
return -1;
}
if (!st)
st = guess_super(fd);
if (!st) {
/* just look at device... */
lseek(fd, 0, 0);
} else if (!st->ss->locate_bitmap) {
pr_err("No bitmap possible with %s metadata\n", st->ss->name);
close(fd);
return -1;
}
if (st->ss->locate_bitmap(st, fd, node_num)) {
pr_err("%s doesn't have bitmap\n", filename);
close(fd);
fd = -1;
}
*stp = st;
return fd;
}