]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blobdiff - drivers/md/dm-mpath.c
Merge tag 'gpio-v4.15-1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/linusw...
[mirror_ubuntu-bionic-kernel.git] / drivers / md / dm-mpath.c
index 3f88c9d32f7ecc9a66613d6eb0a3df26cf1dc788..204606bef9e2a15d3a91bfeefb3ee5d479506ced 100644 (file)
@@ -641,14 +641,6 @@ static void process_queued_bios(struct work_struct *work)
        blk_finish_plug(&plug);
 }
 
-static void assign_bit(bool value, long nr, unsigned long *addr)
-{
-       if (value)
-               set_bit(nr, addr);
-       else
-               clear_bit(nr, addr);
-}
-
 /*
  * If we run out of usable paths, should we queue I/O or error it?
  */
@@ -658,11 +650,11 @@ static int queue_if_no_path(struct multipath *m, bool queue_if_no_path,
        unsigned long flags;
 
        spin_lock_irqsave(&m->lock, flags);
-       assign_bit((save_old_value && test_bit(MPATHF_QUEUE_IF_NO_PATH, &m->flags)) ||
-                  (!save_old_value && queue_if_no_path),
-                  MPATHF_SAVED_QUEUE_IF_NO_PATH, &m->flags);
-       assign_bit(queue_if_no_path || dm_noflush_suspending(m->ti),
-                  MPATHF_QUEUE_IF_NO_PATH, &m->flags);
+       assign_bit(MPATHF_SAVED_QUEUE_IF_NO_PATH, &m->flags,
+                  (save_old_value && test_bit(MPATHF_QUEUE_IF_NO_PATH, &m->flags)) ||
+                  (!save_old_value && queue_if_no_path));
+       assign_bit(MPATHF_QUEUE_IF_NO_PATH, &m->flags,
+                  queue_if_no_path || dm_noflush_suspending(m->ti));
        spin_unlock_irqrestore(&m->lock, flags);
 
        if (!queue_if_no_path) {
@@ -1588,8 +1580,8 @@ static void multipath_resume(struct dm_target *ti)
        unsigned long flags;
 
        spin_lock_irqsave(&m->lock, flags);
-       assign_bit(test_bit(MPATHF_SAVED_QUEUE_IF_NO_PATH, &m->flags),
-                  MPATHF_QUEUE_IF_NO_PATH, &m->flags);
+       assign_bit(MPATHF_QUEUE_IF_NO_PATH, &m->flags,
+                  test_bit(MPATHF_SAVED_QUEUE_IF_NO_PATH, &m->flags));
        spin_unlock_irqrestore(&m->lock, flags);
 }