Make only "list_splice_tail" entry point for both workers.

Signed-off-by: Kirill Tkhai <[email protected]>
---
 drivers/md/dm-ploop-map.c |   21 +++++++++++++--------
 1 file changed, 13 insertions(+), 8 deletions(-)

diff --git a/drivers/md/dm-ploop-map.c b/drivers/md/dm-ploop-map.c
index ef37874e8991..73d44122361b 100644
--- a/drivers/md/dm-ploop-map.c
+++ b/drivers/md/dm-ploop-map.c
@@ -1632,11 +1632,16 @@ static noinline struct bio_vec 
*create_bvec_from_rq(struct request *rq)
 
 static noinline void submit_pio(struct ploop *ploop, struct pio *pio)
 {
+       struct list_head *queue_list;
+       struct work_struct *worker;
        unsigned long flags;
        LIST_HEAD(list);
        int ret;
 
        if (pio->bi_iter.bi_size) {
+               queue_list = &ploop->deferred_pios;
+               worker = &ploop->worker;
+
                if (ploop_pio_valid(ploop, pio) < 0)
                        goto kill;
 
@@ -1645,20 +1650,20 @@ static noinline void submit_pio(struct ploop *ploop, 
struct pio *pio)
                        pio->bi_status = BLK_STS_RESOURCE;
                        goto endio;
                }
-               list_add(&pio->list, &list);
+       } else {
+               queue_list = &ploop->flush_pios;
+               worker = &ploop->fsync_worker;
 
-               defer_pios(ploop, NULL, &list);
-               goto out;
+               if (WARN_ON_ONCE(pio->bi_op != REQ_OP_FLUSH))
+                       goto kill;
        }
 
-       if (WARN_ON_ONCE(pio->bi_op != REQ_OP_FLUSH))
-               goto kill;
+       list_add(&pio->list, &list);
 
        spin_lock_irqsave(&ploop->deferred_lock, flags);
-       list_add_tail(&pio->list, &ploop->flush_pios);
+       list_splice_tail(&list, queue_list);
        spin_unlock_irqrestore(&ploop->deferred_lock, flags);
-       queue_work(ploop->wq, &ploop->fsync_worker);
-out:
+       queue_work(ploop->wq, worker);
        return;
 kill:
        pio->bi_status = BLK_STS_IOERR;


_______________________________________________
Devel mailing list
[email protected]
https://lists.openvz.org/mailman/listinfo/devel

Reply via email to