From: 2xsec Date: Fri, 9 Nov 2018 07:10:15 +0000 (+0900) Subject: utils: add errno logs for exception case X-Git-Tag: lxc-3.1.0~15^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2f32e37ef41c97ae9d166457d7b0141df96dc3fd;p=thirdparty%2Flxc.git utils: add errno logs for exception case Signed-off-by: 2xsec --- diff --git a/src/lxc/utils.c b/src/lxc/utils.c index 1c0baae31..2f864e3a7 100644 --- a/src/lxc/utils.c +++ b/src/lxc/utils.c @@ -1418,8 +1418,10 @@ static int lxc_get_unused_loop_dev_legacy(char *loop_name) int dfd = -1, fd = -1, ret = -1; dir = opendir("/dev"); - if (!dir) + if (!dir) { + SYSERROR("Failed to open \"/dev\""); return -1; + } while ((dp = readdir(dir))) { if (strncmp(dp->d_name, "loop", 4) != 0) @@ -1467,12 +1469,16 @@ static int lxc_get_unused_loop_dev(char *name_loop) int fd_ctl = -1, fd_tmp = -1; fd_ctl = open("/dev/loop-control", O_RDWR | O_CLOEXEC); - if (fd_ctl < 0) + if (fd_ctl < 0) { + SYSERROR("Failed to open loop control"); return -ENODEV; + } loop_nr = ioctl(fd_ctl, LOOP_CTL_GET_FREE); - if (loop_nr < 0) + if (loop_nr < 0) { + SYSERROR("Failed to get loop control"); goto on_error; + } ret = snprintf(name_loop, LO_NAME_SIZE, "/dev/loop%d", loop_nr); if (ret < 0 || ret >= LO_NAME_SIZE) @@ -1480,7 +1486,7 @@ static int lxc_get_unused_loop_dev(char *name_loop) fd_tmp = open(name_loop, O_RDWR | O_CLOEXEC); if (fd_tmp < 0) - goto on_error; + SYSERROR("Failed to open loop \"%s\"", name_loop); on_error: close(fd_ctl); @@ -1495,26 +1501,34 @@ int lxc_prepare_loop_dev(const char *source, char *loop_dev, int flags) fd_loop = lxc_get_unused_loop_dev(loop_dev); if (fd_loop < 0) { - if (fd_loop == -ENODEV) - fd_loop = lxc_get_unused_loop_dev_legacy(loop_dev); - else + if (fd_loop != -ENODEV) + goto on_error; + + fd_loop = lxc_get_unused_loop_dev_legacy(loop_dev); + if (fd_loop < 0) goto on_error; } fd_img = open(source, O_RDWR | O_CLOEXEC); - if (fd_img < 0) + if (fd_img < 0) { + SYSERROR("Failed to open source \"%s\"", source); goto on_error; + } ret = ioctl(fd_loop, LOOP_SET_FD, fd_img); - if (ret < 0) + if (ret < 0) { + SYSERROR("Failed to set loop fd"); goto on_error; + } memset(&lo64, 0, sizeof(lo64)); lo64.lo_flags = flags; ret = ioctl(fd_loop, LOOP_SET_STATUS64, &lo64); - if (ret < 0) + if (ret < 0) { + SYSERROR("Failed to set loop status64"); goto on_error; + } fret = 0; @@ -1681,10 +1695,8 @@ int lxc_set_death_signal(int signal, pid_t parent) return -1; } - if (ret < 0) { - SYSERROR("Failed to set PR_SET_PDEATHSIG to %d", signal); + if (ret < 0) return -1; - } return 0; }