From: Karel Zak Date: Mon, 24 Nov 2025 15:57:50 +0000 (+0100) Subject: libmount: enhance readability of read_from_blkid() X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=41521056a67bcd5c179b15df9e09265aba8ec732;p=thirdparty%2Futil-linux.git libmount: enhance readability of read_from_blkid() Signed-off-by: Karel Zak --- diff --git a/libmount/src/cache.c b/libmount/src/cache.c index 29f08674f..ebba427e4 100644 --- a/libmount/src/cache.c +++ b/libmount/src/cache.c @@ -364,6 +364,7 @@ static int read_from_blkid(struct libmnt_cache *cache, const char *devname) const struct libmnt_cachetag *t; size_t ntags = 0; int rc; + char *cacheval = NULL; assert(cache); assert(devname); @@ -384,37 +385,31 @@ static int read_from_blkid(struct libmnt_cache *cache, const char *devname) rc = blkid_do_safeprobe(pr); if (rc) - goto error; + goto done; for (t = mnttags; t && t->mnt_name; t++) { const char *data; - char *dev; - if (cache_find_tag_value(cache, devname, t->mnt_name)) { - DBG(CACHE, ul_debugobj(cache, - "\ntag %s already cached", t->mnt_name)); + if (cache_find_tag_value(cache, devname, t->mnt_name)) continue; - } if (blkid_probe_lookup_value(pr, t->blk_name, &data, NULL)) continue; - dev = strdup(devname); - if (!dev) - goto error; - if (cache_add_tag(cache, t->mnt_name, data, dev, - MNT_CACHE_TAGREAD)) { - free(dev); - goto error; - } + + cacheval = strdup(devname); + rc = !cacheval ? -ENOMEM : + cache_add_tag(cache, t->mnt_name, data, cacheval, MNT_CACHE_TAGREAD); + if (rc) + break; ntags++; + cacheval = NULL; /* stored into cache */ } - DBG(CACHE, ul_debugobj(cache, "\tread %zd tags", ntags)); - blkid_free_probe(pr); - return ntags ? 0 : 1; -error: +done: + DBG(CACHE, ul_debugobj(cache, "\tread %zd tags [rc=%d]", ntags, rc)); blkid_free_probe(pr); - return rc < 0 ? rc : -1; + free(cacheval); + return rc ? rc : ntags ? 0 : 1; } /**