//IF_E2FSCK(APPLET_ODDNAME(fsck.ext2, e2fsck, BB_DIR_SBIN, BB_SUID_DROP, fsck_ext2))
//IF_E2FSCK(APPLET_ODDNAME(fsck.ext3, e2fsck, BB_DIR_SBIN, BB_SUID_DROP, fsck_ext3))
IF_FSCK_MINIX(APPLET_ODDNAME(fsck.minix, fsck_minix, BB_DIR_SBIN, BB_SUID_DROP, fsck_minix))
-IF_FSTRIM(APPLET(fstrim, BB_DIR_SBIN, BB_SUID_DROP))
IF_FSYNC(APPLET_NOFORK(fsync, fsync, BB_DIR_BIN, BB_SUID_DROP, fsync))
IF_FTPD(APPLET(ftpd, BB_DIR_USR_SBIN, BB_SUID_DROP))
IF_FTPGET(APPLET_ODDNAME(ftpget, ftpgetput, BB_DIR_USR_BIN, BB_SUID_DROP, ftpget))
* 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"
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);
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;