]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/md/raid10.c
Merge tag 'iio-for-4.13a' of git://git.kernel.org/pub/scm/linux/kernel/git/jic23...
[karo-tx-linux.git] / drivers / md / raid10.c
index 6b86a0032cf86683834c1ce82fcda6e6bd6b8e80..4343d7ff9916bee9a9a399572c2bd3313723fa3a 100644 (file)
@@ -1282,17 +1282,16 @@ static void raid10_write_one_disk(struct mddev *mddev, struct r10bio *r10_bio,
                plug = container_of(cb, struct raid10_plug_cb, cb);
        else
                plug = NULL;
-       spin_lock_irqsave(&conf->device_lock, flags);
        if (plug) {
                bio_list_add(&plug->pending, mbio);
                plug->pending_cnt++;
        } else {
+               spin_lock_irqsave(&conf->device_lock, flags);
                bio_list_add(&conf->pending_bio_list, mbio);
                conf->pending_count++;
-       }
-       spin_unlock_irqrestore(&conf->device_lock, flags);
-       if (!plug)
+               spin_unlock_irqrestore(&conf->device_lock, flags);
                md_wakeup_thread(mddev->thread);
+       }
 }
 
 static void raid10_write_request(struct mddev *mddev, struct bio *bio,