[Devel] [PATCH RHEL7 COMMIT] ploop: force FUA of nullified blocks for BAT grow
Konstantin Khorenko
khorenko at odin.com
Mon May 18 21:27:16 PDT 2015
The commit is pushed to "branch-rh7-3.10.0-123.1.2-ovz" and will appear at https://src.openvz.org/scm/ovz/vzkernel.git
after rh7-3.10.0-123.1.2.vz7.5.1
------>
commit 051a2a154c0e040d7d15ab9a3b56b77d9de021b3
Author: Andrey Smetanin <asmetanin at virtuozzo.com>
Date: Tue May 19 08:27:16 2015 +0400
ploop: force FUA of nullified blocks for BAT grow
Lately we think we does sync of nullified blocks at format
driver by image fsync before header BAT size grow update.
But we write this data directly into underlying device
bypassing EXT4 by usage of extent map tree
(see dio_submit()). So fsync of EXT4 image doesnt help us.
We need to force sync of nullified blocks. This patch does
it by marking preq via PLOOP_REQ_FORCE_FUA flag.
https://jira.sw.ru/browse/PSBM-31969
Signed-off-by: Andrey Smetanin <asmetanin at parallels.com>
Acked-by: Andrew Vagin <avagin at parallels.com>
---
drivers/block/ploop/map.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/drivers/block/ploop/map.c b/drivers/block/ploop/map.c
index 67e2852..8ea67e9 100644
--- a/drivers/block/ploop/map.c
+++ b/drivers/block/ploop/map.c
@@ -1056,10 +1056,14 @@ static void map_wb_complete_post_process(struct ploop_map *map,
0, PAGE_SIZE);
/*
- * FUA of this data occures at format driver ->complete_grow() by
- * all image sync. After that header size increased to use this
- * cluster as BAT cluster.
+ * Lately we think we does sync of nullified blocks at format
+ * driver by image fsync before header update.
+ * But we write this data directly into underlying device
+ * bypassing EXT4 by usage of extent map tree
+ * (see dio_submit()). So fsync of EXT4 image doesnt help us.
+ * We need to force sync of nullified blocks.
*/
+ set_bit(PLOOP_REQ_FORCE_FUA, &preq->state);
top_delta->io.ops->submit(&top_delta->io, preq, preq->req_rw,
&sbl, preq->iblock, 1<<plo->cluster_log);
}
More information about the Devel
mailing list