X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=cmd_dump.c;h=cc25a6a3134d9e27a7c4cbf656821caa746c390f;hb=2bbb23812c83817f3316c96b4599781d475fbe0f;hp=895e0cd010bc1b8d9ecf970934c806f2057ce35c;hpb=a232478f355c112c775c734182363f9e9b1688f8;p=bcachefs-tools-debian diff --git a/cmd_dump.c b/cmd_dump.c index 895e0cd..cc25a6a 100644 --- a/cmd_dump.c +++ b/cmd_dump.c @@ -82,9 +82,9 @@ static void dump_one_device(struct bch_fs *c, struct bch_dev *ca, int fd, } if (ret) - die("error %s walking btree nodes", strerror(-ret)); + die("error %s walking btree nodes", bch2_err_str(ret)); - b = c->btree_roots[i].b; + b = bch2_btree_id_root(c, i)->b; if (!btree_node_fake(b)) { ptrs = bch2_bkey_ptrs_c(bkey_i_to_s_c(&b->key)); @@ -99,7 +99,7 @@ static void dump_one_device(struct bch_fs *c, struct bch_dev *ca, int fd, bch2_trans_exit(&trans); } - qcow2_write_image(ca->disk_sb.bdev->bd_fd, fd, &data, + qcow2_write_image(ca->disk_sb.bdev->bd_buffered_fd, fd, &data, max_t(unsigned, btree_bytes(c) / 8, block_bytes(c))); darray_exit(&data); } @@ -117,7 +117,7 @@ int cmd_dump(int argc, char *argv[]) opt_set(opts, norecovery, true); opt_set(opts, degraded, true); opt_set(opts, errors, BCH_ON_ERROR_continue); - opt_set(opts, fix_errors, FSCK_OPT_NO); + opt_set(opts, fix_errors, FSCK_FIX_no); while ((opt = getopt(argc, argv, "o:fjvh")) != -1) switch (opt) { @@ -147,7 +147,7 @@ int cmd_dump(int argc, char *argv[]) struct bch_fs *c = bch2_fs_open(argv, argc, opts); if (IS_ERR(c)) - die("error opening %s: %s", argv[0], strerror(-PTR_ERR(c))); + die("error opening %s: %s", argv[0], bch2_err_str(PTR_ERR(c))); down_read(&c->gc_lock); @@ -166,8 +166,8 @@ int cmd_dump(int argc, char *argv[]) continue; char *path = nr_devices > 1 - ? mprintf("%s.%u", out, i) - : strdup(out); + ? mprintf("%s.%u.qcow2", out, i) + : mprintf("%s.qcow2", out); fd = xopen(path, flags, 0600); free(path);