[Devel] [PATCH RHEL9 COMMIT] dm-ploop: Print more error information on resize

Konstantin Khorenko khorenko at virtuozzo.com
Thu Jan 27 18:00:48 MSK 2022


The commit is pushed to "branch-rh9-5.14.0-4.vz9.12.x-ovz" and will appear at https://src.openvz.org/scm/ovz/vzkernel.git
after rh9-5.14.0-4.vz9.12.2
------>
commit 71c0306942adf6b9e71e283d43550118967e6f22
Author: Kirill Tkhai <ktkhai at virtuozzo.com>
Date:   Thu Jan 27 18:00:48 2022 +0300

    dm-ploop: Print more error information on resize
    
    Add more debug messages.
    
    https://jira.sw.ru/browse/PSBM-137646
    Signed-off-by: Kirill Tkhai <ktkhai at virtuozzo.com>
    
    Feature: dm-ploop: ploop target driver
---
 drivers/md/dm-ploop-cmd.c | 17 ++++++++++++++---
 drivers/md/dm-ploop-map.c | 13 +++++++++----
 2 files changed, 23 insertions(+), 7 deletions(-)

diff --git a/drivers/md/dm-ploop-cmd.c b/drivers/md/dm-ploop-cmd.c
index 92878d5477b1..429a03cce392 100644
--- a/drivers/md/dm-ploop-cmd.c
+++ b/drivers/md/dm-ploop-cmd.c
@@ -304,17 +304,22 @@ static int ploop_grow_relocate_cluster(struct ploop *ploop,
 
 	/* Read full clu sync */
 	ret = ploop_read_cluster_sync(ploop, pio, dst_clu);
-	if (ret < 0)
+	if (ret < 0) {
+		pr_err("ploop: reloc: failed read: %d\n", ret);
 		goto out;
+	}
 
 	ret = ploop_prepare_reloc_index_wb(ploop, &md, clu, &new_dst);
-	if (ret < 0)
+	if (ret < 0) {
+		pr_err("ploop: reloc: can't prepare it: %d\n", ret);
 		goto out;
+	}
 	piwb = md->piwb;
 
 	/* Write clu to new destination */
 	ret = ploop_write_cluster_sync(ploop, pio, new_dst);
 	if (ret) {
+		pr_err("ploop: reloc: failed write: %d\n", ret);
 		ploop_break_bat_update(ploop, md);
 		goto out;
 	}
@@ -328,8 +333,10 @@ static int ploop_grow_relocate_cluster(struct ploop *ploop,
 	wait_for_completion(&comp);
 
 	ret = blk_status_to_errno(bi_status);
-	if (ret)
+	if (ret) {
+		pr_err("ploop: reloc: failed md page write: %d\n", ret);
 		goto out;
+	}
 
 	/* Update local BAT copy */
 	write_lock_irq(&ploop->bat_rwlock);
@@ -345,6 +352,8 @@ static int ploop_grow_relocate_cluster(struct ploop *ploop,
 
 	/* Zero new BAT entries on disk. */
 	ret = ploop_write_zero_cluster_sync(ploop, pio, dst_clu);
+	if (ret)
+		pr_err("ploop: reloc: failed zero: %d\n", ret);
 out:
 	return ret;
 }
@@ -395,6 +404,8 @@ static int ploop_grow_update_header(struct ploop *ploop,
 		hdr->m_SizeInSectors_v2 = sectors;
 		hdr->m_FirstBlockOffset = offset;
 		kunmap_atomic(hdr);
+	} else {
+		pr_err("ploop: Failed to update hdr: %d\n", ret);
 	}
 
 	return ret;
diff --git a/drivers/md/dm-ploop-map.c b/drivers/md/dm-ploop-map.c
index 251ac03198fd..e3ef1b49aad8 100644
--- a/drivers/md/dm-ploop-map.c
+++ b/drivers/md/dm-ploop-map.c
@@ -1052,8 +1052,10 @@ static int allocate_cluster(struct ploop *ploop, u32 *dst_clu)
 		 * in background.
 		 */
 		ret = vfs_fsync(file, 0);
-		if (ret)
+		if (ret) {
+			pr_err("ploop: fsync: %d\n", ret);
 			return ret;
+		}
 	}
 
 	if (end > top->file_preallocated_area_start)
@@ -1884,11 +1886,14 @@ int ploop_prepare_reloc_index_wb(struct ploop *ploop,
 	if (dst_clu)
 		type = PIWB_TYPE_RELOC;
 
-	if ((md->status & (MD_DIRTY|MD_WRITEBACK)) ||
-	    ploop_prepare_bat_update(ploop, md, type)) {
-		err = -EIO;
+	err = -EIO;
+	if ((md->status & (MD_DIRTY|MD_WRITEBACK))) {
+		pr_err("ploop: Unexpected md status: %x\n", md->status);
 		goto out_error;
 	}
+	err = ploop_prepare_bat_update(ploop, md, type);
+	if (err)
+		goto out_error;
 
 	piwb = md->piwb;
 


More information about the Devel mailing list