| From | Sergei Zviagintsev <> | Subject | [PATCH 36/44] kdbus: Improve kdbus_name_release() | Date | Thu, 8 Oct 2015 14:32:05 +0300 |
| |
Use goto to handle error paths in conventional way.
Signed-off-by: Sergei Zviagintsev <sergei@s15v.net> --- ipc/kdbus/names.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-)
diff --git a/ipc/kdbus/names.c b/ipc/kdbus/names.c index a1c3442f8e53..8e53681d1b7b 100644 --- a/ipc/kdbus/names.c +++ b/ipc/kdbus/names.c @@ -474,18 +474,23 @@ static int kdbus_name_release(struct kdbus_name_registry *reg, int ret = 0; down_write(®->rwlock); + name = kdbus_name_entry_find(reg, kdbus_strhash(name_str), name_str); - if (name) { - owner = kdbus_name_owner_find(name, conn); - if (owner) - kdbus_name_release_unlocked(owner); - else - ret = -EADDRINUSE; - } else { + if (!name) { ret = -ESRCH; + goto exit; } - up_write(®->rwlock); + owner = kdbus_name_owner_find(name, conn); + if (!owner) { + ret = -EADDRINUSE; + goto exit; + } + + kdbus_name_release_unlocked(owner); + +exit: + up_write(®->rwlock); kdbus_notify_flush(conn->ep->bus); return ret; } -- 1.8.3.1
|