summaryrefslogtreecommitdiff
path: root/cmds-replace.c
diff options
context:
space:
mode:
authorRosen Penev <rosenp@gmail.com>2018-01-07 13:54:21 -0800
committerDavid Sterba <dsterba@suse.com>2018-01-31 15:14:03 +0100
commite4df433b8a2d5ef944ab4764a5ad237bcdbd1fdc (patch)
tree19aa758dee389cea7c86c68ce1c8cc8e9a52836c /cmds-replace.c
parent24103f42ad7a65457a62ae5c0190ea0e428cb14b (diff)
btrfs-progs: treewide: Replace strerror(errno) with %m.
As btrfs is specific to Linux, %m can be used instead of strerror(errno) in format strings. This has some size reduction benefits for embedded systems. glibc, musl, and uclibc-ng all support %m as a modifier to printf. A quick glance at the BIONIC libc source indicates that it has support for %m as well. BSDs and Windows do not but I do believe them to be beyond the scope of btrfs-progs. Compiled sizes on Ubuntu 16.04: Before: 3916512 btrfs 233688 libbtrfs.so.0.1 4899 bcp 2367672 btrfs-convert 2208488 btrfs-corrupt-block 13302 btrfs-debugfs 2152160 btrfs-debug-tree 2136024 btrfs-find-root 2287592 btrfs-image 2144600 btrfs-map-logical 2130760 btrfs-select-super 2152608 btrfstune 2131760 btrfs-zero-log 2277752 mkfs.btrfs 9166 show-blocks After: 3908744 btrfs 233256 libbtrfs.so.0.1 4899 bcp 2366560 btrfs-convert 2207432 btrfs-corrupt-block 13302 btrfs-debugfs 2151104 btrfs-debug-tree 2134968 btrfs-find-root 2281864 btrfs-image 2143536 btrfs-map-logical 2129704 btrfs-select-super 2151552 btrfstune 2130696 btrfs-zero-log 2276272 mkfs.btrfs 9166 show-blocks Total savings: 23928 (24 kilo)bytes Signed-off-by: Rosen Penev <rosenp@gmail.com> Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'cmds-replace.c')
-rw-r--r--cmds-replace.c26
1 files changed, 12 insertions, 14 deletions
diff --git a/cmds-replace.c b/cmds-replace.c
index a3ea977c..032a44fc 100644
--- a/cmds-replace.c
+++ b/cmds-replace.c
@@ -169,8 +169,8 @@ static int cmd_replace_start(int argc, char **argv)
ret = ioctl(fdmnt, BTRFS_IOC_DEV_REPLACE, &status_args);
if (ret < 0) {
fprintf(stderr,
- "ERROR: ioctl(DEV_REPLACE_STATUS) failed on \"%s\": %s",
- path, strerror(errno));
+ "ERROR: ioctl(DEV_REPLACE_STATUS) failed on \"%s\": %m",
+ path);
if (status_args.result != BTRFS_IOCTL_DEV_REPLACE_RESULT_NO_RESULT)
fprintf(stderr, ", %s\n",
replace_dev_result2string(status_args.result));
@@ -194,8 +194,8 @@ static int cmd_replace_start(int argc, char **argv)
srcdev = argv[optind];
dstdev = canonicalize_path(argv[optind + 1]);
if (!dstdev) {
- error("cannot canonicalize path '%s': %s",
- argv[optind + 1], strerror(errno));
+ error("cannot canonicalize path '%s': %m",
+ argv[optind + 1]);
goto leave_with_error;
}
@@ -250,7 +250,7 @@ static int cmd_replace_start(int argc, char **argv)
fddstdev = open(dstdev, O_RDWR);
if (fddstdev < 0) {
- error("unable to open %s: %s", dstdev, strerror(errno));
+ error("unable to open %s: %m", dstdev);
goto leave_with_error;
}
strncpy((char *)start_args.start.tgtdev_name, dstdev,
@@ -268,7 +268,7 @@ static int cmd_replace_start(int argc, char **argv)
dev_replace_handle_sigint(fdmnt);
if (!do_not_background) {
if (daemon(0, 0) < 0) {
- error("backgrounding failed: %s", strerror(errno));
+ error("backgrounding failed: %m");
goto leave_with_error;
}
}
@@ -279,8 +279,8 @@ static int cmd_replace_start(int argc, char **argv)
if (do_not_background) {
if (ret < 0) {
fprintf(stderr,
- "ERROR: ioctl(DEV_REPLACE_START) failed on \"%s\": %s",
- path, strerror(errno));
+ "ERROR: ioctl(DEV_REPLACE_START) failed on \"%s\": %m",
+ path);
if (start_args.result != BTRFS_IOCTL_DEV_REPLACE_RESULT_NO_RESULT)
fprintf(stderr, ", %s\n",
replace_dev_result2string(start_args.result));
@@ -374,8 +374,8 @@ static int print_replace_status(int fd, const char *path, int once)
args.result = BTRFS_IOCTL_DEV_REPLACE_RESULT_NO_RESULT;
ret = ioctl(fd, BTRFS_IOC_DEV_REPLACE, &args);
if (ret < 0) {
- fprintf(stderr, "ERROR: ioctl(DEV_REPLACE_STATUS) failed on \"%s\": %s",
- path, strerror(errno));
+ fprintf(stderr, "ERROR: ioctl(DEV_REPLACE_STATUS) failed on \"%s\": %m",
+ path);
if (args.result != BTRFS_IOCTL_DEV_REPLACE_RESULT_NO_RESULT)
fprintf(stderr, ", %s\n",
replace_dev_result2string(args.result));
@@ -498,7 +498,6 @@ static int cmd_replace_cancel(int argc, char **argv)
int ret;
int c;
int fd;
- int e;
char *path;
DIR *dirstream = NULL;
@@ -521,11 +520,10 @@ static int cmd_replace_cancel(int argc, char **argv)
args.cmd = BTRFS_IOCTL_DEV_REPLACE_CMD_CANCEL;
args.result = BTRFS_IOCTL_DEV_REPLACE_RESULT_NO_RESULT;
ret = ioctl(fd, BTRFS_IOC_DEV_REPLACE, &args);
- e = errno;
close_file_or_dir(fd, dirstream);
if (ret < 0) {
- fprintf(stderr, "ERROR: ioctl(DEV_REPLACE_CANCEL) failed on \"%s\": %s",
- path, strerror(e));
+ fprintf(stderr, "ERROR: ioctl(DEV_REPLACE_CANCEL) failed on \"%s\": %m",
+ path);
if (args.result != BTRFS_IOCTL_DEV_REPLACE_RESULT_NO_RESULT)
fprintf(stderr, ", %s\n",
replace_dev_result2string(args.result));