Signed-off-by: Tim Wiederhake <twiederh@xxxxxxxxxx> --- src/util/virnetdev.c | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/src/util/virnetdev.c b/src/util/virnetdev.c index fcf679ec37..5df48af60c 100644 --- a/src/util/virnetdev.c +++ b/src/util/virnetdev.c @@ -3568,12 +3568,10 @@ virNetDevReserveName(const char *name) idstr = name + strlen(virNetDevGenNames[type].prefix); if (virStrToLong_ui(idstr, NULL, 10, &id) >= 0) { - virMutexLock(&virNetDevGenNames[type].mutex); + VIR_LOCK_GUARD lock = virLockGuardLock(&virNetDevGenNames[type].mutex); if (virNetDevGenNames[type].lastID < (int)id) virNetDevGenNames[type].lastID = id; - - virMutexUnlock(&virNetDevGenNames[type].mutex); } } @@ -3599,7 +3597,6 @@ virNetDevReserveName(const char *name) int virNetDevGenerateName(char **ifname, virNetDevGenNameType type) { - int id; const char *prefix = virNetDevGenNames[type].prefix; double maxIDd = pow(10, IFNAMSIZ - 1 - strlen(prefix)); int maxID = INT_MAX; @@ -3617,16 +3614,15 @@ virNetDevGenerateName(char **ifname, virNetDevGenNameType type) do { g_autofree char *try = NULL; + int id = 0; - virMutexLock(&virNetDevGenNames[type].mutex); - - id = ++virNetDevGenNames[type].lastID; + VIR_WITH_OBJECT_LOCK_GUARD(&virNetDevGenNames[type].mutex) { + id = ++virNetDevGenNames[type].lastID; - /* reset before overflow */ - if (virNetDevGenNames[type].lastID >= maxID) - virNetDevGenNames[type].lastID = -1; - - virMutexUnlock(&virNetDevGenNames[type].mutex); + /* reset before overflow */ + if (virNetDevGenNames[type].lastID >= maxID) + virNetDevGenNames[type].lastID = -1; + } if (*ifname) try = g_strdup_printf(*ifname, id); -- 2.31.1