From e4df433b8a2d5ef944ab4764a5ad237bcdbd1fdc Mon Sep 17 00:00:00 2001 From: Rosen Penev Date: Sun, 7 Jan 2018 13:54:21 -0800 Subject: 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 Signed-off-by: David Sterba --- cmds-scrub.c | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) (limited to 'cmds-scrub.c') diff --git a/cmds-scrub.c b/cmds-scrub.c index 5388fdcf..dabe7d9a 100644 --- a/cmds-scrub.c +++ b/cmds-scrub.c @@ -849,8 +849,7 @@ static void *scrub_one_dev(void *ctx) IOPRIO_PRIO_VALUE(sp->ioprio_class, sp->ioprio_classdata)); if (ret) - warning("setting ioprio failed: %s (ignored)", - strerror(errno)); + warning("setting ioprio failed: %m (ignored)"); ret = ioctl(sp->fd, BTRFS_IOC_SCRUB, &sp->scrub_args); gettimeofday(&tv, NULL); @@ -1195,8 +1194,8 @@ static int scrub_start(int argc, char **argv, int resume) if (mkdir_p(datafile)) { warning_on(!do_quiet, - "cannot create scrub data file, mkdir %s failed: %s. Status recording disabled", - datafile, strerror(errno)); + "cannot create scrub data file, mkdir %s failed: %m. Status recording disabled", + datafile); do_record = 0; } free(datafile); @@ -1267,7 +1266,7 @@ static int scrub_start(int argc, char **argv, int resume) spc.progress = calloc(fi_args.num_devices * 2, sizeof(*spc.progress)); if (!t_devs || !sp || !spc.progress) { - error_on(!do_quiet, "scrub failed: %s", strerror(errno)); + error_on(!do_quiet, "scrub failed: %m"); err = 1; goto out; } @@ -1346,9 +1345,9 @@ static int scrub_start(int argc, char **argv, int resume) ret = listen(prg_fd, 100); if (ret == -1) { warning_on(!do_quiet, - "failed to open the progress status socket at %s: %s. Progress cannot be queried", + "failed to open the progress status socket at %s: %m. Progress cannot be queried", sock_path[0] ? sock_path : - SCRUB_PROGRESS_SOCKET_PATH, strerror(errno)); + SCRUB_PROGRESS_SOCKET_PATH); if (prg_fd != -1) { close(prg_fd); prg_fd = -1; @@ -1372,8 +1371,7 @@ static int scrub_start(int argc, char **argv, int resume) if (do_background) { pid = fork(); if (pid == -1) { - error_on(!do_quiet, "cannot scrub, fork failed: %s", - strerror(errno)); + error_on(!do_quiet, "cannot scrub, fork failed: %m"); err = 1; goto out; } @@ -1391,8 +1389,8 @@ static int scrub_start(int argc, char **argv, int resume) } ret = wait(&stat); if (ret != pid) { - error_on(!do_quiet, "wait failed (ret=%d): %s", - ret, strerror(errno)); + error_on(!do_quiet, "wait failed (ret=%d): %m", + ret); err = 1; goto out; } @@ -1720,8 +1718,7 @@ static int cmd_scrub_status(int argc, char **argv) fdres = socket(AF_UNIX, SOCK_STREAM, 0); if (fdres == -1) { - error("failed to create socket to receive progress information: %s", - strerror(errno)); + error("failed to create socket to receive progress information: %m"); err = 1; goto out; } -- cgit v1.2.3