rbd: only load nbd module if not available yet

Signed-off-by: Niels de Vos <ndevos@redhat.com>
This commit is contained in:
Niels de Vos 2020-01-16 14:35:21 +01:00 committed by mergify[bot]
parent f04af5742d
commit a0ef9da390

View File

@ -20,6 +20,7 @@ import (
"context" "context"
"encoding/json" "encoding/json"
"fmt" "fmt"
"os"
"strconv" "strconv"
"strings" "strings"
"time" "time"
@ -153,11 +154,16 @@ func waitForPath(ctx context.Context, pool, image string, maxRetries int, useNbd
// Check if rbd-nbd tools are installed. // Check if rbd-nbd tools are installed.
func checkRbdNbdTools() bool { func checkRbdNbdTools() bool {
_, err := execCommand("modprobe", []string{moduleNbd}) // check if the module is loaded or compiled in
_, err := os.Stat(fmt.Sprintf("/sys/module/%s", moduleNbd))
if os.IsNotExist(err) {
// try to load the module
_, err = execCommand("modprobe", []string{moduleNbd})
if err != nil { if err != nil {
klog.V(3).Infof("rbd-nbd: nbd modprobe failed with error %v", err) klog.V(3).Infof("rbd-nbd: nbd modprobe failed with error %v", err)
return false return false
} }
}
if _, err := execCommand(rbdTonbd, []string{"--version"}); err != nil { if _, err := execCommand(rbdTonbd, []string{"--version"}); err != nil {
klog.V(3).Infof("rbd-nbd: running rbd-nbd --version failed with error %v", err) klog.V(3).Infof("rbd-nbd: running rbd-nbd --version failed with error %v", err)
return false return false