Skip to content

Commit

Permalink
btrfs-progs: use libbtrfsutil for subvol delete
Browse files Browse the repository at this point in the history
Most of the interesting part of this command is the commit mode, so this
only saves a little bit of code.

Signed-off-by: Omar Sandoval <osandov@fb.com>
Signed-off-by: David Sterba <dsterba@suse.com>
  • Loading branch information
osandov authored and kdave committed Mar 6, 2018
1 parent 9e73a41 commit afb0426
Showing 1 changed file with 8 additions and 14 deletions.
22 changes: 8 additions & 14 deletions cmds-subvolume.c
Original file line number Diff line number Diff line change
Expand Up @@ -264,7 +264,6 @@ static int cmd_subvol_delete(int argc, char **argv)
int res, ret = 0;
int cnt;
int fd = -1;
struct btrfs_ioctl_vol_args args;
char *dname, *vname, *cpath;
char *dupdname = NULL;
char *dupvname = NULL;
Expand All @@ -276,6 +275,7 @@ static int cmd_subvol_delete(int argc, char **argv)
char uuidbuf[BTRFS_UUID_UNPARSED_SIZE];
struct seen_fsid *seen_fsid_hash[SEEN_FSID_HASH_SIZE] = { NULL, };
enum { COMMIT_AFTER = 1, COMMIT_EACH = 2 };
enum btrfs_util_error err;

while (1) {
int c;
Expand Down Expand Up @@ -319,14 +319,9 @@ static int cmd_subvol_delete(int argc, char **argv)
again:
path = argv[cnt];

res = test_issubvolume(path);
if (res < 0) {
error("cannot access subvolume %s: %s", path, strerror(-res));
ret = 1;
goto out;
}
if (!res) {
error("not a subvolume: %s", path);
err = btrfs_util_is_subvolume(path);
if (err) {
error_btrfs_util(err);
ret = 1;
goto out;
}
Expand All @@ -352,11 +347,10 @@ static int cmd_subvol_delete(int argc, char **argv)
printf("Delete subvolume (%s): '%s/%s'\n",
commit_mode == COMMIT_EACH || (commit_mode == COMMIT_AFTER && cnt + 1 == argc)
? "commit" : "no-commit", dname, vname);
memset(&args, 0, sizeof(args));
strncpy_null(args.name, vname);
res = ioctl(fd, BTRFS_IOC_SNAP_DESTROY, &args);
if(res < 0 ){
error("cannot delete '%s/%s': %m", dname, vname);

err = btrfs_util_delete_subvolume_fd(fd, vname, 0);
if (err) {
error_btrfs_util(err);
ret = 1;
goto out;
}
Expand Down

0 comments on commit afb0426

Please sign in to comment.