diff options
author | Stanislav Brabec | 2017-01-25 18:30:26 +0100 |
---|---|---|
committer | Karel Zak | 2017-01-31 12:26:01 +0100 |
commit | afa382f2e087b71c9e626144f2f313abc42ad594 (patch) | |
tree | 83705dfe61cdfa002ca696d83126aed9622c8315 /sys-utils | |
parent | logger: support sub-trees in the ID for RFC5424 (diff) | |
download | kernel-qcow2-util-linux-afa382f2e087b71c9e626144f2f313abc42ad594.tar.gz kernel-qcow2-util-linux-afa382f2e087b71c9e626144f2f313abc42ad594.tar.xz kernel-qcow2-util-linux-afa382f2e087b71c9e626144f2f313abc42ad594.zip |
fstrim: de-duplicate btrfs sub-volumes
There was a comparison of roots in uniq_fs_source_cmp(). As we care only on
device names, comparing roots makes only a little sense, and it breaks on btrfs.
As a result, FITRIM ioctl() is called for each subvolume. But by design, only
one TRIM is needed for the whole btrfs volume.
Remove it to be able to de-duplicate btrfs subvolumes.
Fixes opensuse #1020077.
Signed-off-by: Stanislav Brabec <sbrabec@suse.cz>
Diffstat (limited to 'sys-utils')
-rw-r--r-- | sys-utils/fstrim.c | 14 |
1 files changed, 1 insertions, 13 deletions
diff --git a/sys-utils/fstrim.c b/sys-utils/fstrim.c index e92a822f0..f252edba0 100644 --- a/sys-utils/fstrim.c +++ b/sys-utils/fstrim.c @@ -158,23 +158,11 @@ static int uniq_fs_source_cmp( struct libmnt_fs *a, struct libmnt_fs *b) { - int eq; - if (mnt_fs_is_pseudofs(a) || mnt_fs_is_netfs(a) || mnt_fs_is_pseudofs(b) || mnt_fs_is_netfs(b)) return 1; - eq = mnt_fs_streq_srcpath(a, mnt_fs_get_srcpath(b)); - if (eq) { - const char *aroot = mnt_fs_get_root(a), - *broot = mnt_fs_get_root(b); - if (!aroot || !broot) - eq = 0; - else if (strcmp(aroot, broot) != 0) - eq = 0; - } - - return !eq; + return !mnt_fs_streq_srcpath(a, mnt_fs_get_srcpath(b)); } /* |