| @@ -8,21 +8,31 @@ |
| * Licensed under GPLv2 or later, see file LICENSE in this source tree. |
| */ |
| |
| + | //config:config FSTRIM |
| + | //config: bool "fstrim" |
| + | //config: default y |
| + | //config: select PLATFORM_LINUX |
| + | //config: help |
| + | //config: Discard unused blocks on a mounted filesystem. |
| + | |
| + | //applet:IF_FSTRIM(APPLET(fstrim, BB_DIR_SBIN, BB_SUID_DROP)) |
| + | |
| + | //kbuild:lib-$(CONFIG_FSTRIM) += fstrim.o |
| + | |
| //usage:#define fstrim_trivial_usage |
| - | //usage: "[Options] <mountpoint>" |
| + | //usage: "[OPTIONS] MOUNTPOINT" |
| //usage:#define fstrim_full_usage "\n\n" |
| - | //usage: "Options:" |
| //usage: IF_LONG_OPTS( |
| - | //usage: "\n -o,--offset=offset offset in bytes to discard from" |
| - | //usage: "\n -l,--length=length length of bytes to discard from the offset" |
| - | //usage: "\n -m,--minimum=minimum minimum extent length to discard" |
| - | //usage: "\n -v,--verbose print number of discarded bytes" |
| + | //usage: " -o,--offset=OFFSET Offset in bytes to discard from" |
| + | //usage: "\n -l,--length=LEN Bytes to discard" |
| + | //usage: "\n -m,--minimum=MIN Minimum extent length" |
| + | //usage: "\n -v,--verbose Print number of discarded bytes" |
| //usage: ) |
| //usage: IF_NOT_LONG_OPTS( |
| - | //usage: "\n -o offset offset in bytes to discard from" |
| - | //usage: "\n -l length length of bytes to discard from the offset" |
| - | //usage: "\n -m minimum minimum extent length to discard" |
| - | //usage: "\n -v, print number of discarded bytes" |
| + | //usage: " -o OFFSET Offset in bytes to discard from" |
| + | //usage: "\n -l LEN Bytes to discard" |
| + | //usage: "\n -m MIN Minimum extent length" |
| + | //usage: "\n -v, Print number of discarded bytes" |
| //usage: ) |
| |
| #include "libbb.h" |
| @@ -94,7 +104,7 @@ int fstrim_main(int argc UNUSED_PARAM, char **argv) |
| if (opts & OPT_m) |
| range.minlen = xatoull_sfx(arg_m, fstrim_sfx); |
| |
| - | mp = *(argv += optind); |
| + | mp = argv[optind]; |
| if (find_block_device(mp)) { |
| fd = xopen_nonblocking(mp); |
| xioctl(fd, FITRIM, &range); |
| @@ -102,7 +112,7 @@ int fstrim_main(int argc UNUSED_PARAM, char **argv) |
| close(fd); |
| |
| if (opts & OPT_v) |
| - | printf("%s: %llu bytes were trimmed\n", mp, range.len); |
| + | printf("%s: %llu bytes trimmed\n", mp, (unsigned long long)range.len); |
| return EXIT_SUCCESS; |
| } |
| return EXIT_FAILURE; |