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-filesystem.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-filesystem.c')
-rw-r--r-- | cmds-filesystem.c | 26 |
1 files changed, 10 insertions, 16 deletions
diff --git a/cmds-filesystem.c b/cmds-filesystem.c index 25d3c0cf..467aff11 100644 --- a/cmds-filesystem.c +++ b/cmds-filesystem.c @@ -71,7 +71,7 @@ static int get_df(int fd, struct btrfs_ioctl_space_args **sargs_ret) ret = ioctl(fd, BTRFS_IOC_SPACE_INFO, sargs); if (ret < 0) { - error("cannot get space info: %s", strerror(errno)); + error("cannot get space info: %m"); free(sargs); return -errno; } @@ -92,8 +92,8 @@ static int get_df(int fd, struct btrfs_ioctl_space_args **sargs_ret) sargs->total_spaces = 0; ret = ioctl(fd, BTRFS_IOC_SPACE_INFO, sargs); if (ret < 0) { - error("cannot get space info with %llu slots: %s", - count, strerror(errno)); + error("cannot get space info with %llu slots: %m", + count); free(sargs); return -errno; } @@ -813,7 +813,7 @@ static const char * const cmd_filesystem_sync_usage[] = { static int cmd_filesystem_sync(int argc, char **argv) { - int fd, res, e; + int fd, res; char *path; DIR *dirstream = NULL; @@ -829,10 +829,9 @@ static int cmd_filesystem_sync(int argc, char **argv) return 1; res = ioctl(fd, BTRFS_IOC_SYNC); - e = errno; close_file_or_dir(fd, dirstream); if( res < 0 ){ - error("sync ioctl failed on '%s': %s", path, strerror(e)); + error("sync ioctl failed on '%s': %m", path); return 1; } @@ -879,7 +878,6 @@ static int defrag_callback(const char *fpath, const struct stat *sb, int typeflag, struct FTW *ftwbuf) { int ret = 0; - int err = 0; int fd = 0; if ((typeflag == FTW_F) && S_ISREG(sb->st_mode)) { @@ -887,7 +885,6 @@ static int defrag_callback(const char *fpath, const struct stat *sb, printf("%s\n", fpath); fd = open(fpath, O_RDWR); if (fd < 0) { - err = errno; goto error; } ret = ioctl(fd, BTRFS_IOC_DEFRAG_RANGE, &defrag_global_range); @@ -899,14 +896,13 @@ static int defrag_callback(const char *fpath, const struct stat *sb, return ENOTTY; } if (ret) { - err = errno; goto error; } } return 0; error: - error("defrag failed on %s: %s", fpath, strerror(err)); + error("defrag failed on %s: %m", fpath); defrag_global_errors++; return 0; } @@ -1025,16 +1021,14 @@ static int cmd_filesystem_defrag(int argc, char **argv) dirstream = NULL; fd = open_file_or_dir(argv[i], &dirstream); if (fd < 0) { - error("cannot open %s: %s", argv[i], - strerror(errno)); + error("cannot open %s: %m", argv[i]); ret = -errno; goto next; } ret = fstat(fd, &st); if (ret) { - error("failed to stat %s: %s", - argv[i], strerror(errno)); + error("failed to stat %s: %m", argv[i]); ret = -errno; goto next; } @@ -1115,7 +1109,7 @@ static int cmd_filesystem_resize(int argc, char **argv) res = stat(path, &st); if (res < 0) { - error("resize: cannot stat %s: %s", path, strerror(errno)); + error("resize: cannot stat %s: %m", path); return 1; } if (!S_ISDIR(st.st_mode)) { @@ -1142,7 +1136,7 @@ static int cmd_filesystem_resize(int argc, char **argv) path); break; default: - error("unable to resize '%s': %s", path, strerror(e)); + error("unable to resize '%s': %m", path); break; } return 1; |