]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
md: make md_flush_request() more readable
authorLi Nan <linan122@huawei.com>
Tue, 28 May 2024 20:31:49 +0000 (04:31 +0800)
committerSong Liu <song@kernel.org>
Mon, 10 Jun 2024 19:15:44 +0000 (19:15 +0000)
Setting bio to NULL and checking 'if(!bio)' is redundant and looks strange,
just consolidate them into one condition. There are no functional changes.

Suggested-by: Christoph Hellwig <hch@infradead.org>
Signed-off-by: Li Nan <linan122@huawei.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Song Liu <song@kernel.org>
Link: https://lore.kernel.org/r/20240528203149.2383260-1-linan666@huaweicloud.com
drivers/md/md.c

index e204e36e31708119779351e9f2e4bd0215ede933..b9b15aa79496fbe6557214630f2ceaa536aad31a 100644 (file)
@@ -657,24 +657,22 @@ bool md_flush_request(struct mddev *mddev, struct bio *bio)
                WARN_ON(percpu_ref_is_zero(&mddev->active_io));
                percpu_ref_get(&mddev->active_io);
                mddev->flush_bio = bio;
-               bio = NULL;
-       }
-       spin_unlock_irq(&mddev->lock);
-
-       if (!bio) {
+               spin_unlock_irq(&mddev->lock);
                INIT_WORK(&mddev->flush_work, submit_flushes);
                queue_work(md_wq, &mddev->flush_work);
-       } else {
-               /* flush was performed for some other bio while we waited. */
-               if (bio->bi_iter.bi_size == 0)
-                       /* an empty barrier - all done */
-                       bio_endio(bio);
-               else {
-                       bio->bi_opf &= ~REQ_PREFLUSH;
-                       return false;
-               }
+               return true;
        }
-       return true;
+
+       /* flush was performed for some other bio while we waited. */
+       spin_unlock_irq(&mddev->lock);
+       if (bio->bi_iter.bi_size == 0) {
+               /* pure flush without data - all done */
+               bio_endio(bio);
+               return true;
+       }
+
+       bio->bi_opf &= ~REQ_PREFLUSH;
+       return false;
 }
 EXPORT_SYMBOL(md_flush_request);