ipc: Combine mutex_lock() and lock_dss().
authorAndre Noll <maan@tuebingen.mpg.de>
Sun, 16 Apr 2017 10:37:01 +0000 (12:37 +0200)
committerAndre Noll <maan@tuebingen.mpg.de>
Thu, 13 Jul 2017 17:08:36 +0000 (19:08 +0200)
The former function is only called by the latter, and both are short,
so let's combine them.

ipc.c

diff --git a/ipc.c b/ipc.c
index bc8995aeef86590d5755635466bb86ab419b1133..880ce1734522c3f2e6f2c9988e69976a5398f967 100644 (file)
--- a/ipc.c
+++ b/ipc.c
@@ -64,31 +64,6 @@ static int do_semop(int id, struct sembuf *sops, int num)
        return -ERRNO_TO_DSS_ERROR(errno);
 }
 
-static int mutex_lock(int id)
-{
-       struct sembuf sops[4];
-
-       DSS_DEBUG_LOG(("locking\n"));
-
-       sops[0].sem_num = 0;
-       sops[0].sem_op = 0;
-       sops[0].sem_flg = SEM_UNDO | IPC_NOWAIT;
-
-       sops[1].sem_num = 0;
-       sops[1].sem_op = 1;
-       sops[1].sem_flg = SEM_UNDO | IPC_NOWAIT;
-
-       sops[2].sem_num = 1;
-       sops[2].sem_op = 0;
-       sops[2].sem_flg = SEM_UNDO | IPC_NOWAIT;
-
-       sops[3].sem_num = 1;
-       sops[3].sem_op = 1;
-       sops[3].sem_flg = SEM_UNDO | IPC_NOWAIT;
-
-       return do_semop(id, sops, 4);
-}
-
 static bool mutex_is_locked(int id)
 {
        struct sembuf sops;
@@ -108,13 +83,32 @@ static bool mutex_is_locked(int id)
 
 int lock_dss(char *config_file)
 {
-       int ret;
+       int ret, id;
+       struct sembuf sops[4];
        key_t key = get_key(config_file);
 
        ret = mutex_get(key, IPC_CREAT | 0600);
        if (ret < 0)
                return ret;
-       return mutex_lock(ret);
+       id = ret;
+
+       sops[0].sem_num = 0;
+       sops[0].sem_op = 0;
+       sops[0].sem_flg = SEM_UNDO | IPC_NOWAIT;
+
+       sops[1].sem_num = 0;
+       sops[1].sem_op = 1;
+       sops[1].sem_flg = SEM_UNDO | IPC_NOWAIT;
+
+       sops[2].sem_num = 1;
+       sops[2].sem_op = 0;
+       sops[2].sem_flg = SEM_UNDO | IPC_NOWAIT;
+
+       sops[3].sem_num = 1;
+       sops[3].sem_op = 1;
+       sops[3].sem_flg = SEM_UNDO | IPC_NOWAIT;
+
+       return do_semop(id, sops, 4);
 }
 
 int get_dss_pid(char *config_file, pid_t *pid)