summaryrefslogtreecommitdiff
path: root/cmds-filesystem.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-filesystem.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-filesystem.c')
-rw-r--r--cmds-filesystem.c26
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;