summaryrefslogtreecommitdiffstats
path: root/sys-utils/fstrim.c
diff options
context:
space:
mode:
authorKarel Zak2019-06-11 11:05:12 +0200
committerKarel Zak2019-06-11 11:05:12 +0200
commit6466959d9af04a2f720374839c6ecf89de02f4b6 (patch)
tree3e9f5e10f72c12aa979c961be217fb3c981baf73 /sys-utils/fstrim.c
parentcfdisk: simplify code (diff)
downloadkernel-qcow2-util-linux-6466959d9af04a2f720374839c6ecf89de02f4b6.tar.gz
kernel-qcow2-util-linux-6466959d9af04a2f720374839c6ecf89de02f4b6.tar.xz
kernel-qcow2-util-linux-6466959d9af04a2f720374839c6ecf89de02f4b6.zip
fstrim: update man page, reuse libmnt_iter
* add info about read-only to the man page * don't be systemd specific, people aso use crond * reuse libmnt_iter Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'sys-utils/fstrim.c')
-rw-r--r--sys-utils/fstrim.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/sys-utils/fstrim.c b/sys-utils/fstrim.c
index e0e9e57a9..2c11a317f 100644
--- a/sys-utils/fstrim.c
+++ b/sys-utils/fstrim.c
@@ -278,6 +278,7 @@ static int fstrim_all(struct fstrim_control *ctl)
if (!itr)
err(MNT_EX_FAIL, _("failed to initialize libmount iterator"));
+ /* Remove useless entries and canonicalize the table */
while (mnt_table_next_fs(tab, itr, &fs) == 0) {
const char *src = mnt_fs_get_srcpath(fs),
*tgt = mnt_fs_get_target(fs);
@@ -304,15 +305,13 @@ static int fstrim_all(struct fstrim_control *ctl)
continue;
}
}
- mnt_free_iter(itr);
/* de-duplicate by source */
mnt_table_uniq_fs(tab, MNT_UNIQ_FORWARD, uniq_fs_source_cmp);
- itr = mnt_new_iter(MNT_ITER_BACKWARD);
- if (!itr)
- err(MNT_EX_FAIL, _("failed to initialize libmount iterator"));
+ mnt_reset_iter(itr, MNT_ITER_BACKWARD);
+ /* Do FITRIM */
while (mnt_table_next_fs(tab, itr, &fs) == 0) {
const char *src = mnt_fs_get_srcpath(fs),
*tgt = mnt_fs_get_target(fs);
@@ -328,7 +327,7 @@ static int fstrim_all(struct fstrim_control *ctl)
if (rc)
continue; /* overlaying mount */
- /* FSTRIM on read-only filesystem can fail, and it can fail */
+ /* FITRIM on read-only filesystem can fail, and it can fail */
if (access(path, W_OK) != 0) {
if (errno == EROFS)
continue;