From: Lucas De Marchi Date: Fri, 15 Jun 2012 04:08:17 +0000 (-0300) Subject: depmod: fail if any index could not be created X-Git-Tag: v9~8 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=80e49ad9883b596310b6b2240e810511bd89d790;p=thirdparty%2Fkmod.git depmod: fail if any index could not be created --- diff --git a/tools/depmod.c b/tools/depmod.c index d8dded6d..d8bfc2b5 100644 --- a/tools/depmod.c +++ b/tools/depmod.c @@ -2266,19 +2266,25 @@ static int depmod_output(struct depmod *depmod, FILE *out) if (r < 0) { if (unlinkat(dfd, tmp, 0) != 0) ERR("unlinkat(%s, %s): %m\n", dname, tmp); - } else { - unlinkat(dfd, itr->name, 0); - if (renameat(dfd, tmp, dfd, itr->name) != 0) { - err = -errno; - CRIT("renameat(%s, %s, %s, %s): %m\n", - dname, tmp, dname, itr->name); - break; - } + + ERR("Could not write index '%s': %s\n", itr->name, + strerror(-r)); + err = -errno; + break; + } + + unlinkat(dfd, itr->name, 0); + if (renameat(dfd, tmp, dfd, itr->name) != 0) { + err = -errno; + CRIT("renameat(%s, %s, %s, %s): %m\n", + dname, tmp, dname, itr->name); + break; } } if (dfd >= 0) close(dfd); + return err; }