mirror of
https://github.com/qemu/qemu.git
synced 2026-07-08 17:46:10 +00:00
util/filemonitor-inotify: Use QEMU_LOCK_GUARD()
Replace manual qemu_mutex_(un)lock() calls with QEMU_LOCK_GUARD() to remove 'goto cleanup' code Signed-off-by: Evgeny Kolmakov <randomjack94dev@gmail.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Message-ID: <20260622073647.3721-1-randomjack94dev@gmail.com> Signed-off-by: Philippe Mathieu-Daudé <philmd@oss.qualcomm.com>
This commit is contained in:
committed by
Philippe Mathieu-Daudé
parent
5ccef75fa2
commit
067229e249
@@ -21,6 +21,7 @@
|
|||||||
#include "qemu/osdep.h"
|
#include "qemu/osdep.h"
|
||||||
#include "qemu/filemonitor.h"
|
#include "qemu/filemonitor.h"
|
||||||
#include "qemu/main-loop.h"
|
#include "qemu/main-loop.h"
|
||||||
|
#include "qemu/lockable.h"
|
||||||
#include "qemu/error-report.h"
|
#include "qemu/error-report.h"
|
||||||
#include "qapi/error.h"
|
#include "qapi/error.h"
|
||||||
#include "trace.h"
|
#include "trace.h"
|
||||||
@@ -59,10 +60,9 @@ static void qemu_file_monitor_watch(void *arg)
|
|||||||
int used = 0;
|
int used = 0;
|
||||||
int len;
|
int len;
|
||||||
|
|
||||||
qemu_mutex_lock(&mon->lock);
|
QEMU_LOCK_GUARD(&mon->lock);
|
||||||
|
|
||||||
if (mon->fd == -1) {
|
if (mon->fd == -1) {
|
||||||
qemu_mutex_unlock(&mon->lock);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -72,11 +72,10 @@ static void qemu_file_monitor_watch(void *arg)
|
|||||||
if (errno != EAGAIN) {
|
if (errno != EAGAIN) {
|
||||||
error_report("Failure monitoring inotify FD '%s',"
|
error_report("Failure monitoring inotify FD '%s',"
|
||||||
"disabling events", strerror(errno));
|
"disabling events", strerror(errno));
|
||||||
goto cleanup;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* no more events right now */
|
/* no more events right now */
|
||||||
goto cleanup;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Loop over all events in the buffer */
|
/* Loop over all events in the buffer */
|
||||||
@@ -151,9 +150,6 @@ static void qemu_file_monitor_watch(void *arg)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
cleanup:
|
|
||||||
qemu_mutex_unlock(&mon->lock);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -257,9 +253,8 @@ qemu_file_monitor_add_watch(QFileMonitor *mon,
|
|||||||
{
|
{
|
||||||
QFileMonitorDir *dir;
|
QFileMonitorDir *dir;
|
||||||
QFileMonitorWatch watch;
|
QFileMonitorWatch watch;
|
||||||
int64_t ret = -1;
|
|
||||||
|
|
||||||
qemu_mutex_lock(&mon->lock);
|
QEMU_LOCK_GUARD(&mon->lock);
|
||||||
dir = g_hash_table_lookup(mon->dirs, dirpath);
|
dir = g_hash_table_lookup(mon->dirs, dirpath);
|
||||||
if (!dir) {
|
if (!dir) {
|
||||||
int rv = inotify_add_watch(mon->fd, dirpath,
|
int rv = inotify_add_watch(mon->fd, dirpath,
|
||||||
@@ -268,7 +263,7 @@ qemu_file_monitor_add_watch(QFileMonitor *mon,
|
|||||||
|
|
||||||
if (rv < 0) {
|
if (rv < 0) {
|
||||||
error_setg_errno(errp, errno, "Unable to watch '%s'", dirpath);
|
error_setg_errno(errp, errno, "Unable to watch '%s'", dirpath);
|
||||||
goto cleanup;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
trace_qemu_file_monitor_enable_watch(mon, dirpath, rv);
|
trace_qemu_file_monitor_enable_watch(mon, dirpath, rv);
|
||||||
@@ -297,11 +292,7 @@ qemu_file_monitor_add_watch(QFileMonitor *mon,
|
|||||||
filename ? filename : "<none>",
|
filename ? filename : "<none>",
|
||||||
cb, opaque, watch.id);
|
cb, opaque, watch.id);
|
||||||
|
|
||||||
ret = watch.id;
|
return watch.id;
|
||||||
|
|
||||||
cleanup:
|
|
||||||
qemu_mutex_unlock(&mon->lock);
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -312,13 +303,13 @@ void qemu_file_monitor_remove_watch(QFileMonitor *mon,
|
|||||||
QFileMonitorDir *dir;
|
QFileMonitorDir *dir;
|
||||||
gsize i;
|
gsize i;
|
||||||
|
|
||||||
qemu_mutex_lock(&mon->lock);
|
QEMU_LOCK_GUARD(&mon->lock);
|
||||||
|
|
||||||
trace_qemu_file_monitor_remove_watch(mon, dirpath, id);
|
trace_qemu_file_monitor_remove_watch(mon, dirpath, id);
|
||||||
|
|
||||||
dir = g_hash_table_lookup(mon->dirs, dirpath);
|
dir = g_hash_table_lookup(mon->dirs, dirpath);
|
||||||
if (!dir) {
|
if (!dir) {
|
||||||
goto cleanup;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < dir->watches->len; i++) {
|
for (i = 0; i < dir->watches->len; i++) {
|
||||||
@@ -342,7 +333,4 @@ void qemu_file_monitor_remove_watch(QFileMonitor *mon,
|
|||||||
qemu_set_fd_handler(mon->fd, NULL, NULL, NULL);
|
qemu_set_fd_handler(mon->fd, NULL, NULL, NULL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
cleanup:
|
|
||||||
qemu_mutex_unlock(&mon->lock);
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user