fsync(src_fd);
break;
}
+ fiemap_iter_exit(&iter);
fiemap_for_each(src_fd, iter, e) {
if ((e.fe_logical & (block_bytes(c) - 1)) ||
range_add(extents, e.fe_physical, e.fe_length);
link_data(c, dst, e.fe_logical, e.fe_physical, e.fe_length);
}
+ fiemap_iter_exit(&iter);
}
struct copy_fs_state {
if (errno)
die("readdir error: %m");
+ closedir(dir);
}
static ranges reserve_new_fs_space(const char *file_path, unsigned block_size,
range_add(&extents, e.fe_physical, e.fe_length);
}
+ fiemap_iter_exit(&iter);
close(fd);
ranges_sort_merge(&extents);