From: Karel Zak Date: Fri, 14 Sep 2018 13:57:45 +0000 (+0200) Subject: lsblk: differentiate between swap and mount X-Git-Tag: v2.33-rc1~16 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=82dae67d1a902aec6aa164510717be027810bfe6;p=thirdparty%2Futil-linux.git lsblk: differentiate between swap and mount Signed-off-by: Karel Zak --- diff --git a/misc-utils/lsblk-mnt.c b/misc-utils/lsblk-mnt.c index 6bc634043f..890675ed5d 100644 --- a/misc-utils/lsblk-mnt.c +++ b/misc-utils/lsblk-mnt.c @@ -50,7 +50,7 @@ char *lsblk_device_get_mountpoint(struct blkdev_cxt *cxt) assert(cxt); assert(cxt->filename); - if (cxt->is_mounted) + if (cxt->is_mounted || cxt->is_swap) return cxt->mountpoint; if (!mtab) { @@ -79,8 +79,12 @@ char *lsblk_device_get_mountpoint(struct blkdev_cxt *cxt) if (!fs) fs = mnt_table_find_srcpath(mtab, cxt->filename, MNT_ITER_BACKWARD); if (!fs) { - cxt->mountpoint = is_active_swap(cxt->filename) ? xstrdup("[SWAP]") : NULL; - cxt->is_mounted = 1; + if (is_active_swap(cxt->filename)) { + cxt->mountpoint = xstrdup("[SWAP]"); + cxt->is_swap = 1; + } else + cxt->mountpoint = NULL; + return cxt->mountpoint; } diff --git a/misc-utils/lsblk.c b/misc-utils/lsblk.c index d466a25b18..2a6044c0e5 100644 --- a/misc-utils/lsblk.c +++ b/misc-utils/lsblk.c @@ -786,7 +786,7 @@ static char *get_vfs_attribute(struct blkdev_cxt *cxt, int id) if (!cxt->fsstat.f_blocks) { mnt = lsblk_device_get_mountpoint(cxt); - if (!mnt) + if (!mnt || cxt->is_swap) return NULL; if (statvfs(mnt, &cxt->fsstat) != 0) return NULL; diff --git a/misc-utils/lsblk.h b/misc-utils/lsblk.h index 8817314afd..13e8e754d1 100644 --- a/misc-utils/lsblk.h +++ b/misc-utils/lsblk.h @@ -89,7 +89,8 @@ struct blkdev_cxt { uint64_t size; /* device size */ - unsigned int is_mounted : 1; + unsigned int is_mounted : 1, + is_swap : 1; }; /* lsblk-mnt.c */