mirror of
https://github.com/kdave/btrfs-progs
synced 2025-02-16 17:56:51 +00:00
btrfs-progs: cmd subvolume: switch to common error message wrapper
Message texts were adjusted. Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
e67f03887f
commit
e7e759017d
100
cmds-subvolume.c
100
cmds-subvolume.c
@ -77,9 +77,9 @@ static int wait_for_subvolume_cleaning(int fd, int count, u64 *ids,
|
|||||||
continue;
|
continue;
|
||||||
ret = is_subvolume_cleaned(fd, ids[i]);
|
ret = is_subvolume_cleaned(fd, ids[i]);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
fprintf(stderr,
|
error(
|
||||||
"ERROR: can't perform the search - %s\n",
|
"cannot read status of dead subvolume %llu: %s",
|
||||||
strerror(-ret));
|
(unsigned long long)ids[i], strerror(-ret));
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
if (ret) {
|
if (ret) {
|
||||||
@ -159,7 +159,7 @@ static int cmd_subvol_create(int argc, char **argv)
|
|||||||
retval = 1; /* failure */
|
retval = 1; /* failure */
|
||||||
res = test_isdir(dst);
|
res = test_isdir(dst);
|
||||||
if (res >= 0) {
|
if (res >= 0) {
|
||||||
fprintf(stderr, "ERROR: '%s' exists\n", dst);
|
error("target path already exists: %s", dst);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -169,15 +169,13 @@ static int cmd_subvol_create(int argc, char **argv)
|
|||||||
dstdir = dirname(dupdir);
|
dstdir = dirname(dupdir);
|
||||||
|
|
||||||
if (!test_issubvolname(newname)) {
|
if (!test_issubvolname(newname)) {
|
||||||
fprintf(stderr, "ERROR: incorrect subvolume name '%s'\n",
|
error("invalid subvolume name: %s", newname);
|
||||||
newname);
|
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
len = strlen(newname);
|
len = strlen(newname);
|
||||||
if (len == 0 || len >= BTRFS_VOL_NAME_MAX) {
|
if (len == 0 || len >= BTRFS_VOL_NAME_MAX) {
|
||||||
fprintf(stderr, "ERROR: subvolume name too long '%s'\n",
|
error("subvolume name too long: %s", newname);
|
||||||
newname);
|
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -206,8 +204,7 @@ static int cmd_subvol_create(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (res < 0) {
|
if (res < 0) {
|
||||||
fprintf(stderr, "ERROR: cannot create subvolume - %s\n",
|
error("cannot create subvolume: %s", strerror(errno));
|
||||||
strerror(errno));
|
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -323,12 +320,12 @@ again:
|
|||||||
|
|
||||||
res = test_issubvolume(path);
|
res = test_issubvolume(path);
|
||||||
if (res < 0) {
|
if (res < 0) {
|
||||||
fprintf(stderr, "ERROR: error accessing '%s'\n", path);
|
error("cannot access subvolume %s", path);
|
||||||
ret = 1;
|
ret = 1;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
if (!res) {
|
if (!res) {
|
||||||
fprintf(stderr, "ERROR: '%s' is not a subvolume\n", path);
|
error("not a subvolume: %s", path);
|
||||||
ret = 1;
|
ret = 1;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
@ -336,7 +333,7 @@ again:
|
|||||||
cpath = realpath(path, NULL);
|
cpath = realpath(path, NULL);
|
||||||
if (!cpath) {
|
if (!cpath) {
|
||||||
ret = errno;
|
ret = errno;
|
||||||
fprintf(stderr, "ERROR: finding real path for '%s': %s\n",
|
error("cannot find real path for '%s': %s",
|
||||||
path, strerror(errno));
|
path, strerror(errno));
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
@ -361,8 +358,7 @@ again:
|
|||||||
e = errno;
|
e = errno;
|
||||||
|
|
||||||
if(res < 0 ){
|
if(res < 0 ){
|
||||||
fprintf( stderr, "ERROR: cannot delete '%s/%s' - %s\n",
|
error("cannot delete '%s/%s': %s", dname, vname, strerror(e));
|
||||||
dname, vname, strerror(e));
|
|
||||||
ret = 1;
|
ret = 1;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
@ -370,8 +366,7 @@ again:
|
|||||||
if (commit_mode == 1) {
|
if (commit_mode == 1) {
|
||||||
res = wait_for_commit(fd);
|
res = wait_for_commit(fd);
|
||||||
if (res < 0) {
|
if (res < 0) {
|
||||||
fprintf(stderr,
|
error("unable to wait for commit after '%s': %s",
|
||||||
"ERROR: unable to wait for commit after '%s': %s\n",
|
|
||||||
path, strerror(errno));
|
path, strerror(errno));
|
||||||
ret = 1;
|
ret = 1;
|
||||||
}
|
}
|
||||||
@ -394,8 +389,7 @@ out:
|
|||||||
if (commit_mode == 2 && fd != -1) {
|
if (commit_mode == 2 && fd != -1) {
|
||||||
res = wait_for_commit(fd);
|
res = wait_for_commit(fd);
|
||||||
if (res < 0) {
|
if (res < 0) {
|
||||||
fprintf(stderr,
|
error("unable to do final sync after deletion: %s",
|
||||||
"ERROR: unable to do final sync: %s\n",
|
|
||||||
strerror(errno));
|
strerror(errno));
|
||||||
ret = 1;
|
ret = 1;
|
||||||
}
|
}
|
||||||
@ -564,13 +558,13 @@ static int cmd_subvol_list(int argc, char **argv)
|
|||||||
fd = btrfs_open_dir(subvol, &dirstream, 1);
|
fd = btrfs_open_dir(subvol, &dirstream, 1);
|
||||||
if (fd < 0) {
|
if (fd < 0) {
|
||||||
ret = -1;
|
ret = -1;
|
||||||
fprintf(stderr, "ERROR: can't access '%s'\n", subvol);
|
error("can't access '%s'", subvol);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = btrfs_list_get_path_rootid(fd, &top_id);
|
ret = btrfs_list_get_path_rootid(fd, &top_id);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
fprintf(stderr, "ERROR: can't get rootid for '%s'\n", subvol);
|
error("can't get rootid for '%s'", subvol);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -682,17 +676,17 @@ static int cmd_subvol_snapshot(int argc, char **argv)
|
|||||||
retval = 1; /* failure */
|
retval = 1; /* failure */
|
||||||
res = test_issubvolume(subvol);
|
res = test_issubvolume(subvol);
|
||||||
if (res < 0) {
|
if (res < 0) {
|
||||||
fprintf(stderr, "ERROR: error accessing '%s'\n", subvol);
|
error("cannot access subvolume %s", subvol);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
if (!res) {
|
if (!res) {
|
||||||
fprintf(stderr, "ERROR: '%s' is not a subvolume\n", subvol);
|
error("not a subvolume: %s", subvol);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
res = test_isdir(dst);
|
res = test_isdir(dst);
|
||||||
if (res == 0) {
|
if (res == 0) {
|
||||||
fprintf(stderr, "ERROR: '%s' exists and it is not a directory\n", dst);
|
error("'%s' exists and it is not a directory", dst);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -708,15 +702,13 @@ static int cmd_subvol_snapshot(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!test_issubvolname(newname)) {
|
if (!test_issubvolname(newname)) {
|
||||||
fprintf(stderr, "ERROR: incorrect snapshot name '%s'\n",
|
error("invalid snapshot name '%s'", newname);
|
||||||
newname);
|
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
len = strlen(newname);
|
len = strlen(newname);
|
||||||
if (len == 0 || len >= BTRFS_VOL_NAME_MAX) {
|
if (len == 0 || len >= BTRFS_VOL_NAME_MAX) {
|
||||||
fprintf(stderr, "ERROR: snapshot name too long '%s'\n",
|
error("snapshot name too long '%s'", newname);
|
||||||
newname);
|
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -748,8 +740,7 @@ static int cmd_subvol_snapshot(int argc, char **argv)
|
|||||||
res = ioctl(fddst, BTRFS_IOC_SNAP_CREATE_V2, &args);
|
res = ioctl(fddst, BTRFS_IOC_SNAP_CREATE_V2, &args);
|
||||||
|
|
||||||
if (res < 0) {
|
if (res < 0) {
|
||||||
fprintf( stderr, "ERROR: cannot snapshot '%s' - %s\n",
|
error("cannot snapshot '%s': %s", subvol, strerror(errno));
|
||||||
subvol, strerror(errno));
|
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -790,14 +781,14 @@ static int cmd_subvol_get_default(int argc, char **argv)
|
|||||||
|
|
||||||
ret = btrfs_list_get_default_subvolume(fd, &default_id);
|
ret = btrfs_list_get_default_subvolume(fd, &default_id);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
fprintf(stderr, "ERROR: can't perform the search - %s\n",
|
error("failed to look up default subvolume: %s",
|
||||||
strerror(errno));
|
strerror(errno));
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = 1;
|
ret = 1;
|
||||||
if (default_id == 0) {
|
if (default_id == 0) {
|
||||||
fprintf(stderr, "ERROR: 'default' dir item not found\n");
|
error("'default' dir item not found");
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -858,7 +849,7 @@ static int cmd_subvol_set_default(int argc, char **argv)
|
|||||||
e = errno;
|
e = errno;
|
||||||
close_file_or_dir(fd, dirstream);
|
close_file_or_dir(fd, dirstream);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
fprintf(stderr, "ERROR: unable to set a new default subvolume - %s\n",
|
error("unable to set a new default subvolume: %s",
|
||||||
strerror(e));
|
strerror(e));
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@ -887,11 +878,11 @@ static int cmd_subvol_find_new(int argc, char **argv)
|
|||||||
|
|
||||||
ret = test_issubvolume(subvol);
|
ret = test_issubvolume(subvol);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
fprintf(stderr, "ERROR: error accessing '%s'\n", subvol);
|
error("cannot access subvolume %s", subvol);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
if (!ret) {
|
if (!ret) {
|
||||||
fprintf(stderr, "ERROR: '%s' is not a subvolume\n", subvol);
|
error("not a subvolume: %s", subvol);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -901,7 +892,7 @@ static int cmd_subvol_find_new(int argc, char **argv)
|
|||||||
|
|
||||||
ret = ioctl(fd, BTRFS_IOC_SYNC);
|
ret = ioctl(fd, BTRFS_IOC_SYNC);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
fprintf(stderr, "ERROR: unable to fs-syncing '%s' - %s\n",
|
error("sync ioctl failed on '%s': %s",
|
||||||
subvol, strerror(errno));
|
subvol, strerror(errno));
|
||||||
close_file_or_dir(fd, dirstream);
|
close_file_or_dir(fd, dirstream);
|
||||||
return 1;
|
return 1;
|
||||||
@ -936,32 +927,30 @@ static int cmd_subvol_show(int argc, char **argv)
|
|||||||
|
|
||||||
fullpath = realpath(argv[1], NULL);
|
fullpath = realpath(argv[1], NULL);
|
||||||
if (!fullpath) {
|
if (!fullpath) {
|
||||||
fprintf(stderr, "ERROR: finding real path for '%s', %s\n",
|
error("cannot find real path for '%s': %s",
|
||||||
argv[1], strerror(errno));
|
argv[1], strerror(errno));
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = test_issubvolume(fullpath);
|
ret = test_issubvolume(fullpath);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
fprintf(stderr, "ERROR: error accessing '%s'\n", fullpath);
|
error("cannot access subvolume %s", fullpath);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
if (!ret) {
|
if (!ret) {
|
||||||
fprintf(stderr, "ERROR: '%s' is not a subvolume\n", fullpath);
|
error("not a subvolume: %s", fullpath);
|
||||||
ret = 1;
|
ret = 1;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = find_mount_root(fullpath, &mnt);
|
ret = find_mount_root(fullpath, &mnt);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
fprintf(stderr, "ERROR: find_mount_root failed on '%s': "
|
error("find_mount_root failed on '%s': %s",
|
||||||
"%s\n", fullpath, strerror(-ret));
|
fullpath, strerror(-ret));
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
if (ret > 0) {
|
if (ret > 0) {
|
||||||
fprintf(stderr,
|
error("%s doesn't belong to btrfs mount point", fullpath);
|
||||||
"ERROR: %s doesn't belong to btrfs mount point\n",
|
|
||||||
fullpath);
|
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
ret = 1;
|
ret = 1;
|
||||||
@ -973,8 +962,7 @@ static int cmd_subvol_show(int argc, char **argv)
|
|||||||
|
|
||||||
ret = btrfs_list_get_path_rootid(fd, &sv_id);
|
ret = btrfs_list_get_path_rootid(fd, &sv_id);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
fprintf(stderr, "ERROR: can't get rootid for '%s'\n",
|
error("can't get rootid for '%s'", fullpath);
|
||||||
fullpath);
|
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -983,7 +971,7 @@ static int cmd_subvol_show(int argc, char **argv)
|
|||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
if (sv_id == BTRFS_FS_TREE_OBJECTID) {
|
if (sv_id == BTRFS_FS_TREE_OBJECTID) {
|
||||||
printf("%s is btrfs root\n", fullpath);
|
printf("%s is toplevel subvolume\n", fullpath);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -992,8 +980,7 @@ static int cmd_subvol_show(int argc, char **argv)
|
|||||||
|
|
||||||
ret = btrfs_get_subvol(mntfd, &get_ri);
|
ret = btrfs_get_subvol(mntfd, &get_ri);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
fprintf(stderr, "ERROR: can't find '%s'\n",
|
error("can't find '%s'", svpath);
|
||||||
svpath);
|
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1239,8 +1226,7 @@ static int cmd_subvol_sync(int argc, char **argv)
|
|||||||
case 's':
|
case 's':
|
||||||
sleep_interval = atoi(argv[optind]);
|
sleep_interval = atoi(argv[optind]);
|
||||||
if (sleep_interval < 1) {
|
if (sleep_interval < 1) {
|
||||||
fprintf(stderr,
|
error("invalid sleep interval %s",
|
||||||
"ERROR: invalid sleep interval %s\n",
|
|
||||||
argv[optind]);
|
argv[optind]);
|
||||||
ret = 1;
|
ret = 1;
|
||||||
goto out;
|
goto out;
|
||||||
@ -1265,7 +1251,7 @@ static int cmd_subvol_sync(int argc, char **argv)
|
|||||||
if (!id_count) {
|
if (!id_count) {
|
||||||
id_count = enumerate_dead_subvols(fd, &ids);
|
id_count = enumerate_dead_subvols(fd, &ids);
|
||||||
if (id_count < 0) {
|
if (id_count < 0) {
|
||||||
fprintf(stderr, "ERROR: can't enumerate dead subvolumes: %s\n",
|
error("can't enumerate dead subvolumes: %s",
|
||||||
strerror(-id_count));
|
strerror(-id_count));
|
||||||
ret = 1;
|
ret = 1;
|
||||||
goto out;
|
goto out;
|
||||||
@ -1277,7 +1263,7 @@ static int cmd_subvol_sync(int argc, char **argv)
|
|||||||
} else {
|
} else {
|
||||||
ids = (u64*)malloc(id_count * sizeof(u64));
|
ids = (u64*)malloc(id_count * sizeof(u64));
|
||||||
if (!ids) {
|
if (!ids) {
|
||||||
fprintf(stderr, "ERROR: not enough memory\n");
|
error("not enough memory");
|
||||||
ret = 1;
|
ret = 1;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
@ -1290,17 +1276,13 @@ static int cmd_subvol_sync(int argc, char **argv)
|
|||||||
errno = 0;
|
errno = 0;
|
||||||
id = strtoull(arg, NULL, 10);
|
id = strtoull(arg, NULL, 10);
|
||||||
if (errno < 0) {
|
if (errno < 0) {
|
||||||
fprintf(stderr,
|
error("unrecognized subvolume id %s", arg);
|
||||||
"ERROR: unrecognized subvolume id %s\n",
|
|
||||||
arg);
|
|
||||||
ret = 1;
|
ret = 1;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
if (id < BTRFS_FIRST_FREE_OBJECTID
|
if (id < BTRFS_FIRST_FREE_OBJECTID
|
||||||
|| id > BTRFS_LAST_FREE_OBJECTID) {
|
|| id > BTRFS_LAST_FREE_OBJECTID) {
|
||||||
fprintf(stderr,
|
error("subvolume id %s out of range\n", arg);
|
||||||
"ERROR: subvolume id %s out of range\n",
|
|
||||||
arg);
|
|
||||||
ret = 1;
|
ret = 1;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user