Check the existence of /sys/bus/ccwgroup/devices/*/online beforehand

On s390x KVM machines, the following errors would show when building kdump
initramfs that dumps vmcore to a remote target,
    $ kdumpctl rebuild
    /usr/lib/dracut/modules.d/99kdumpbase/module-setup.sh: line 475: /sys/bus/ccwgroup/devices/online: No such file or directory
    /usr/lib/dracut/modules.d/99kdumpbase/module-setup.sh: line 476: [: -ne: unary operator expected

This happens because s390x KVM machines use virtual network and
/sys/bus/ccwgroup/devices/ exists but is empty. Fix it by check
the existence of file "/sys/bus/ccwgroup/devices/*/online".

Fixes: commit 7d47251568
       ("Iterate /sys/bus/ccwgroup/devices to tell if we should set up rd.znet")

BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1982474
Reported-by: Jie Li <jieli@redhat.com>
Signed-off-by: Coiby Xu <coxu@redhat.com>
t Acked-by: Kairui Song <kasong@redhat.com>
This commit is contained in:
Coiby Xu 2021-07-15 09:18:33 +08:00 committed by Kairui Song
parent 660cf4ac03
commit b2bbb54d89

View File

@ -462,6 +462,7 @@ find_online_znet_device() {
NETWORK_DEVICES=$(find $CCWGROUPBUS_DEVICEDIR) NETWORK_DEVICES=$(find $CCWGROUPBUS_DEVICEDIR)
for d in $NETWORK_DEVICES for d in $NETWORK_DEVICES
do do
[ ! -f "$d/online" ] && continue
read ONLINE < $d/online read ONLINE < $d/online
if [ $ONLINE -ne 1 ]; then if [ $ONLINE -ne 1 ]; then
continue continue