[Devel] [PATCH RHEL9 COMMIT] Revert "dm-ploop: issue sync from proper context"

Konstantin Khorenko khorenko at virtuozzo.com
Wed Nov 12 20:42:36 MSK 2025


The commit is pushed to "branch-rh9-5.14.0-427.92.1.vz9.88.x-ovz" and will appear at git at bitbucket.org:openvz/vzkernel.git
after rh9-5.14.0-427.92.1.vz9.88.7
------>
commit 8bca997057bb5c2dfdd8c9e63720da2437467e88
Author: Pavel Tikhomirov <ptikhomirov at virtuozzo.com>
Date:   Tue Nov 11 16:05:35 2025 +0800

    Revert "dm-ploop: issue sync from proper context"
    
    This reverts commit b86d9f7bbdee5c90f1f85601e206c36de199403c.
    
    We don't have REQ_FUA in dm-ploop anymore after commit 4e659676652fa
    ("md: mark dm-ploop and dm-qcow2 targets non-fua") so we can revert all
    our REQ_FUA specific handling.
    
    https://virtuozzo.atlassian.net/browse/VSTOR-119063
    Signed-off-by: Pavel Tikhomirov <ptikhomirov at virtuozzo.com>
    
    Feature: dm-ploop: ploop target driver
---
 drivers/md/dm-ploop-map.c | 40 ++++------------------------------------
 drivers/md/dm-ploop.h     |  3 +--
 2 files changed, 5 insertions(+), 38 deletions(-)

diff --git a/drivers/md/dm-ploop-map.c b/drivers/md/dm-ploop-map.c
index e26e12381e980..1a5803e7d1ba9 100644
--- a/drivers/md/dm-ploop-map.c
+++ b/drivers/md/dm-ploop-map.c
@@ -21,7 +21,6 @@
 #include "dm-rq.h"
 
 static inline int ploop_runners_add_work(struct ploop *ploop, struct pio *pio);
-static inline int ploop_runners_add_work_offload(struct ploop *ploop, struct pio *pio);
 static void ploop_bat_write_complete(struct pio *pio, void *piwb_ptr,
 				     blk_status_t bi_status);
 
@@ -216,23 +215,6 @@ static void ploop_prq_endio(struct pio *pio, void *prq_ptr,
 
 static void ploop_dec_nr_inflight(struct ploop *ploop, struct pio *pio);
 
-static void ploop_wrkr_pio_endio(struct pio *pio)
-{
-	ploop_endio_t endio_cb = pio->endio_cb;
-	void *endio_cb_data = pio->endio_cb_data;
-	bool free_on_endio = pio->free_on_endio;
-	struct file *file;
-
-	file = ploop_top_delta(pio->ploop)->file;
-	vfs_fsync(file, 1);
-
-	ploop_dec_nr_inflight(pio->ploop, pio);
-	endio_cb(pio, endio_cb_data, pio->bi_status);
-	if (free_on_endio) {
-		ploop_free_pio(pio->ploop, pio);
-	}
-}
-
 static void ploop_do_pio_endio(struct pio *pio)
 {
 	ploop_endio_t endio_cb = pio->endio_cb;
@@ -244,9 +226,10 @@ static void ploop_do_pio_endio(struct pio *pio)
 
 	/* REQ_FUA requires us to flush all before pio is completed */
 	if (pio->bi_op & REQ_FUA) {
-		pio->queue_list_id = PLOOP_LIST_ENDPIO;
-		ploop_runners_add_work_offload(pio->ploop, pio);
-		return;
+		struct file *file;
+
+		file = ploop_top_delta(pio->ploop)->file;
+		vfs_fsync(file, 1);
 	}
 
 	ploop_dec_nr_inflight(pio->ploop, pio);
@@ -2252,18 +2235,6 @@ static inline int ploop_runners_add_work(struct ploop *ploop, struct pio *pio)
 	return 0;
 }
 
-static inline int ploop_runners_add_work_offload(struct ploop *ploop, struct pio *pio)
-{
-	struct ploop_worker *wrkr;
-
-	wrkr = READ_ONCE(ploop->last_used_runner)->next;
-	WRITE_ONCE(ploop->last_used_runner, wrkr);
-	llist_add((struct llist_node *)(&pio->list), &wrkr->work_llist);
-	wake_up_process(wrkr->task);
-
-	return 0;
-}
-
 static inline int ploop_runners_add_work_list(struct ploop *ploop, struct llist_node *list)
 {
 	struct llist_node *pos, *t;
@@ -2481,9 +2452,6 @@ int ploop_pio_runner(void *data)
 			case PLOOP_LIST_WRITEBACK: /* Write back pio */
 				ploop_submit_rw_mapped(ploop, pio);
 				break;
-			case PLOOP_LIST_ENDPIO:
-				ploop_wrkr_pio_endio(pio);
-				continue;
 			default:
 				WARN_ON_ONCE(1);
 			}
diff --git a/drivers/md/dm-ploop.h b/drivers/md/dm-ploop.h
index fc12efeb0cd93..23662943d56aa 100644
--- a/drivers/md/dm-ploop.h
+++ b/drivers/md/dm-ploop.h
@@ -145,7 +145,6 @@ enum {
 	/* Following to be used as a list id only */
 	PLOOP_LIST_WRITEBACK,
 	PLOOP_LIST_FLUSHPIO,
-	PLOOP_LIST_ENDPIO,
 };
 
 struct ploop_worker {
@@ -315,7 +314,7 @@ struct pio {
 #define PLOOP_REF_INDEX_INVALID	2
 	unsigned int ref_index:2;
 
-	u8 queue_list_id; /* id in ploop->pios */
+	u8 queue_list_id:3; /* id in ploop->pios */
 
 	struct ploop_index_wb *piwb;
 


More information about the Devel mailing list