diff options
| author | zhenwei pi <pizhenwei@bytedance.com> | 2022-06-03 20:24:00 +0800 |
|---|---|---|
| committer | Karel Zak <kzak@redhat.com> | 2022-06-06 12:31:56 +0200 |
| commit | 1b3e8f5d2c9c8a4eb2df578010c10f84b057d501 (patch) | |
| tree | a79ee7cbcd60ac82da385dabbb70fbdde2c43c6b /misc-utils/lsblk.c | |
| parent | 0540d07611a543371348109d6c06f707276ffbce (diff) | |
| download | util-linux-1b3e8f5d2c9c8a4eb2df578010c10f84b057d501.tar.gz | |
lsblk: add -v/--virtio
Add -v/--virtio to filter the virtio block devices.
Signed-off-by: zhenwei pi <pizhenwei@bytedance.com>
Diffstat (limited to 'misc-utils/lsblk.c')
| -rw-r--r-- | misc-utils/lsblk.c | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/misc-utils/lsblk.c b/misc-utils/lsblk.c index dfa3179707..64d7edad6f 100644 --- a/misc-utils/lsblk.c +++ b/misc-utils/lsblk.c @@ -1361,6 +1361,16 @@ static int initialize_device(struct lsblk_device *dev, } } + /* ignore non-virtio devices */ + if (lsblk->virtio) { + char *transport = get_transport(dev); + + if (!transport || strcmp(transport, "virtio")) { + DBG(DEV, ul_debugobj(dev, "non-virtio device -- ignore")); + return -1; + } + } + DBG(DEV, ul_debugobj(dev, "%s: context successfully initialized", dev->name)); return 0; } @@ -1938,6 +1948,7 @@ static void __attribute__((__noreturn__)) usage(void) fputs(_(" -P, --pairs use key=\"value\" output format\n"), out); fputs(_(" -S, --scsi output info about SCSI devices\n"), out); fputs(_(" -N, --nvme output info about NVMe devices\n"), out); + fputs(_(" -v, --virtio output info about virtio devices\n"), out); fputs(_(" -T, --tree[=<column>] use tree format output\n"), out); fputs(_(" -a, --all print all devices\n"), out); fputs(_(" -b, --bytes print SIZE in bytes rather than in human readable format\n"), out); @@ -2024,6 +2035,7 @@ int main(int argc, char *argv[]) { "pairs", no_argument, NULL, 'P' }, { "scsi", no_argument, NULL, 'S' }, { "nvme", no_argument, NULL, 'N' }, + { "virtio", no_argument, NULL, 'v' }, { "sort", required_argument, NULL, 'x' }, { "sysroot", required_argument, NULL, OPT_SYSROOT }, { "shell", no_argument, NULL, 'y' }, @@ -2057,7 +2069,7 @@ int main(int argc, char *argv[]) lsblk_init_debug(); while((c = getopt_long(argc, argv, - "AabdDzE:e:fhJlNnMmo:OpPiI:rstVST::w:x:y", + "AabdDzE:e:fhJlNnMmo:OpPiI:rstVvST::w:x:y", longopts, NULL)) != -1) { err_exclusive_options(c, longopts, excl, excl_st); @@ -2189,6 +2201,15 @@ int main(int argc, char *argv[]) add_uniq_column(COL_TRANSPORT); add_uniq_column(COL_RQ_SIZE); break; + case 'v': + lsblk->nodeps = 1; + lsblk->virtio = 1; + add_uniq_column(COL_NAME); + add_uniq_column(COL_TYPE); + add_uniq_column(COL_TRANSPORT); + add_uniq_column(COL_SIZE); + add_uniq_column(COL_RQ_SIZE); + break; case 'T': force_tree = 1; if (optarg) { |
