command.c: Open-code mmd_dup().
authorAndre Noll <maan@tuebingen.mpg.de>
Mon, 28 Dec 2015 17:47:46 +0000 (17:47 +0000)
committerAndre Noll <maan@tuebingen.mpg.de>
Sat, 2 Jan 2016 16:48:24 +0000 (16:48 +0000)
This function is short and has only a single caller. The code becomes
clearer by open-coding it in the caller.

command.c

index 46ede2f..bde1458 100644 (file)
--- a/command.c
+++ b/command.c
@@ -75,13 +75,6 @@ static void dummy(__a_unused int s)
 {
 }
 
-static void mmd_dup(struct misc_meta_data *new_mmd)
-{
-       mutex_lock(mmd_mutex);
-       *new_mmd = *mmd;
-       mutex_unlock(mmd_mutex);
-}
-
 /*
  * Compute human readable vss status text.
  *
@@ -533,7 +526,13 @@ static int com_stat(struct command_context *cc)
        if (i != cc->argc)
                return -E_COMMAND_SYNTAX;
        for (;;) {
-               mmd_dup(nmmd);
+               /*
+                * Copy the mmd structure to minimize the time we hold the mmd
+                * lock.
+                */
+               mutex_lock(mmd_mutex);
+               *nmmd = *mmd;
+               mutex_unlock(mmd_mutex);
                ret = get_status(nmmd, parser_friendly, &s);
                ret = send_sb(&cc->scc, s, ret, SBD_OUTPUT, false);
                if (ret < 0)