diff options
author | Rosen Penev <rosenp@gmail.com> | 2018-01-07 13:54:21 -0800 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2018-01-31 15:14:03 +0100 |
commit | e4df433b8a2d5ef944ab4764a5ad237bcdbd1fdc (patch) | |
tree | 19aa758dee389cea7c86c68ce1c8cc8e9a52836c /cmds-replace.c | |
parent | 24103f42ad7a65457a62ae5c0190ea0e428cb14b (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.c | 26 |
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)); |