[Devel] [PATCH RHEL9 COMMIT] dm-ploop: drop excessive wb delay disable during resize

Konstantin Khorenko khorenko at virtuozzo.com
Wed Jul 16 16:45:45 MSK 2025


The commit is pushed to "branch-rh9-5.14.0-427.55.1.vz9.82.x-ovz" and will appear at git at bitbucket.org:openvz/vzkernel.git
after rh9-5.14.0-427.55.1.vz9.82.8
------>
commit 89f505f973a37e34cbb4f1f4884559adbb4657e5
Author: Andrey Zhadchenko <andrey.zhadchenko at virtuozzo.com>
Date:   Wed Jul 16 12:37:51 2025 +0300

    dm-ploop: drop excessive wb delay disable during resize
    
    as ploop_suspend_submitting_pios() already contains
    ploop_disable_writeback_delay() and is called before
    ploop_process_resize_cmd()
    
    https://virtuozzo.atlassian.net/browse/VSTOR-108540
    Signed-off-by: Andrey Zhadchenko <andrey.zhadchenko at virtuozzo.com>
    Reviewed-by: Pavel Tikhomirov <ptikhomirov at virtuozzo.com>
    
    Feature: dm-ploop: ploop target driver
    
    ======
    Patchset description:
    dm-ploop: improve pio submission suspension
    
    Recently we encountered EBUSY errors while trying to resize ploop
    devices under load. This mostly happens because we are not waiting
    in-progess IO correctly:
     - initial pio is removed from inflight even if its split pios are
       still running
     - there is no wait for metadata writeback
    
    This patchset fixes that by moving inflight decrease later and
    introducing new counter for inflight metadata writeback.
    
    Note that for dm-qcow2 patches are not needed: it does not have
    delayed metadata writeback and inflight counters are decreased
    correctly at the time of endio_cb.
    
    https://virtuozzo.atlassian.net/browse/VSTOR-108540
---
 drivers/md/dm-ploop-cmd.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/drivers/md/dm-ploop-cmd.c b/drivers/md/dm-ploop-cmd.c
index 8a9e86bd028bf..85bb69714ca86 100644
--- a/drivers/md/dm-ploop-cmd.c
+++ b/drivers/md/dm-ploop-cmd.c
@@ -467,7 +467,6 @@ static int ploop_process_resize_cmd(struct ploop *ploop, struct ploop_cmd *cmd)
 	u32 dst_clu;
 	int ret = 0;
 
-	ploop_disable_writeback_delay(ploop);
 	/* Update memory arrays and hb_nr, but do not update nr_bat_entries. */
 	ploop_advance_holes_bitmap(ploop, cmd);
 
@@ -500,8 +499,6 @@ static int ploop_process_resize_cmd(struct ploop *ploop, struct ploop_cmd *cmd)
 	}
 	spin_unlock_irq(&ploop->bat_lock);
 
-	ploop_enable_writeback_delay(ploop);
-
 	return ret;
 }
 ALLOW_ERROR_INJECTION(ploop_process_resize_cmd, ERRNO);


More information about the Devel mailing list