From 80e49ad9883b596310b6b2240e810511bd89d790 Mon Sep 17 00:00:00 2001 From: Lucas De Marchi Date: Fri, 15 Jun 2012 01:08:17 -0300 Subject: [PATCH] depmod: fail if any index could not be created --- tools/depmod.c | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) 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; } -- 2.47.2