The commit is pushed to "branch-rh8-4.18.0-240.1.1.vz8.5.x-ovz" and will appear 
at https://src.openvz.org/scm/ovz/vzkernel.git
after rh8-4.18.0-240.1.1.vz8.5.30
------>
commit 8b28d846b9ab1ed471dc8640dbf9cdd57f800ab5
Author: Kirill Tkhai <[email protected]>
Date:   Mon May 17 19:04:58 2021 +0300

    ploop: Refactor ploop_map_discard()
    
    Signed-off-by: Kirill Tkhai <[email protected]>
    
    =====================
    Patchset description:
    
    dm-ploop: Kill loop
    
    Intermediate patches can't be base for bisect.
    
    In scope of https://jira.sw.ru/browse/PSBM-123654
    
    Signed-off-by: Kirill Tkhai <[email protected]>
---
 drivers/md/dm-ploop-map.c | 14 ++++++--------
 1 file changed, 6 insertions(+), 8 deletions(-)

diff --git a/drivers/md/dm-ploop-map.c b/drivers/md/dm-ploop-map.c
index 5a5ce5183d8b..b8a78d50f82e 100644
--- a/drivers/md/dm-ploop-map.c
+++ b/drivers/md/dm-ploop-map.c
@@ -195,8 +195,7 @@ static void queue_discard_index_wb(struct ploop *ploop, 
struct pio *pio)
        queue_work(ploop->wq, &ploop->worker);
 }
 
-/* This 1)defers looking suitable discard bios and 2)ends the rest of them. */
-static int ploop_map_discard(struct ploop *ploop, struct pio *pio)
+static int endio_if_unsupported_discard(struct ploop *ploop, struct pio *pio)
 {
        bool supported = false;
        unsigned int cluster;
@@ -213,14 +212,12 @@ static int ploop_map_discard(struct ploop *ploop, struct 
pio *pio)
                read_unlock_irqrestore(&ploop->bat_rwlock, flags);
        }
 
-       if (supported) {
-               defer_pios(ploop, pio, NULL);
-       } else {
+       if (!supported) {
                pio->bi_status = BLK_STS_NOTSUPP;
                pio_endio(pio);
        }
 
-       return DM_MAPIO_SUBMITTED;
+       return !supported;
 }
 
 /* Zero @count bytes of @qio->bi_io_vec since @from byte */
@@ -1663,8 +1660,9 @@ int ploop_map(struct dm_target *ti, struct bio *bio)
        if (pio->bi_iter.bi_size) {
                if (ploop_pio_cluster(ploop, pio, &cluster) < 0)
                        return DM_MAPIO_KILL;
-               if (op_is_discard(pio->bi_opf))
-                       return ploop_map_discard(ploop, pio);
+               if (op_is_discard(pio->bi_opf) &&
+                   endio_if_unsupported_discard(ploop, pio))
+                       return DM_MAPIO_SUBMITTED;
 
                defer_pios(ploop, pio, NULL);
                return DM_MAPIO_SUBMITTED;
_______________________________________________
Devel mailing list
[email protected]
https://lists.openvz.org/mailman/listinfo/devel

Reply via email to