util-linux: fix PKNAME name is NULL when use lsblk [LIN1019-2963]

PKNAME is NULL when run "lsblk -o+PKNAME /dev/sda1"
backport an upstream patch to fix it.

(From OE-Core rev: a5a987ff5e5e333e28be44a12e729907272ea3cb)

Signed-off-by: Liwei Song <liwei.song@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Liwei Song
2019-10-21 13:33:05 +08:00
committed by Richard Purdie
parent b9703df285
commit 82342ab6d4
2 changed files with 37 additions and 0 deletions

View File

@@ -0,0 +1,36 @@
From e3bb9bfb76c17b1d05814436ced62c05c4011f48 Mon Sep 17 00:00:00 2001
From: Karel Zak <kzak@redhat.com>
Date: Thu, 27 Jun 2019 09:22:18 +0200
Subject: [PATCH] lsblk: force to print PKNAME for partition
PKNAME (parent kernel device name) is based on printed tree according
to parent -> child relationship. The tree is optional and not printed
if partition specified (.e.g "lsblk -o+PKNAME /dev/sda1"), but old
versions print the PKNAME also in this case.
Upstream-Status: Backport [https://github.com/karelzak/util-linux/commit/e3bb9bfb76c17b1d05814436ced62c05c4011f48]
Addresses: https://github.com/karelzak/util-linux/issues/813
Signed-off-by: Karel Zak <kzak@redhat.com>
Signed-off-by: Liwei Song <liwei.song@windriver.com>
---
misc-utils/lsblk.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/misc-utils/lsblk.c b/misc-utils/lsblk.c
index e95af7af0256..3ce6da730264 100644
--- a/misc-utils/lsblk.c
+++ b/misc-utils/lsblk.c
@@ -1019,6 +1019,9 @@ static void device_to_scols(
DBG(DEV, ul_debugobj(dev, "add '%s' to scols", dev->name));
ON_DBG(DEV, if (ul_path_isopen_dirfd(dev->sysfs)) ul_debugobj(dev, " %s ---> is open!", dev->name));
+ if (!parent && dev->wholedisk)
+ parent = dev->wholedisk;
+
/* Do not print device more than one in --list mode */
if (!(lsblk->flags & LSBLK_TREE) && dev->is_printed)
return;
--
2.17.1