mirror of
https://github.com/systemd/systemd
synced 2024-10-14 20:17:52 +00:00
repart: Stat temporary file again after mkfs
This makes sure we use the actual size after mkfs which seems to be
important for btrfs as it refuses to mount the partition otherwise.
Follow-up for 2843df3e57
This commit is contained in:
parent
cc1e1bb03e
commit
6ac299e3ce
|
@ -5844,6 +5844,7 @@ static int context_minimize(Context *context) {
|
|||
_cleanup_close_ int fd = -EBADF;
|
||||
_cleanup_free_ char *hint = NULL;
|
||||
sd_id128_t fs_uuid;
|
||||
struct stat st;
|
||||
uint64_t fsz;
|
||||
|
||||
if (p->dropped)
|
||||
|
@ -5932,8 +5933,6 @@ static int context_minimize(Context *context) {
|
|||
/* Read-only filesystems are minimal from the first try because they create and size the
|
||||
* loopback file for us. */
|
||||
if (fstype_is_ro(p->format)) {
|
||||
struct stat st;
|
||||
|
||||
assert(fd < 0);
|
||||
|
||||
fd = open(temp, O_RDONLY|O_CLOEXEC|O_NONBLOCK);
|
||||
|
@ -6012,12 +6011,13 @@ static int context_minimize(Context *context) {
|
|||
return r;
|
||||
}
|
||||
|
||||
assert(fd >= 0);
|
||||
if (fstat(fd, &st) < 0)
|
||||
return log_error_errno(errno, "Failed to stat temporary file: %m");
|
||||
|
||||
p->copy_blocks_path = TAKE_PTR(temp);
|
||||
p->copy_blocks_path_is_our_file = true;
|
||||
p->copy_blocks_fd = TAKE_FD(fd);
|
||||
p->copy_blocks_size = fsz;
|
||||
p->copy_blocks_size = st.st_size;
|
||||
}
|
||||
|
||||
/* Now that we've done the data partitions, do the verity hash partitions. We do these in a separate
|
||||
|
|
Loading…
Reference in a new issue