From b04e7e9219931b47d384eb389c39e3a8a843f5b1 Mon Sep 17 00:00:00 2001 From: Stefan Ring Date: Fri, 11 Jan 2019 16:57:04 -0600 Subject: [PATCH] xfs_metadump: Zap multi fsb blocks Using basically the same code as in process_single_fsb_objects. Signed-off-by: Stefan Ring Reviewed-by: Eric Sandeen Signed-off-by: Eric Sandeen --- db/metadump.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/db/metadump.c b/db/metadump.c index 22cdb9f45..ec94c3ab0 100644 --- a/db/metadump.c +++ b/db/metadump.c @@ -1882,6 +1882,7 @@ process_multi_fsb_objects( typnm_t btype, xfs_fileoff_t last) { + char *dp; int ret = 0; switch (btype) { @@ -1922,15 +1923,21 @@ process_multi_fsb_objects( } - if ((!obfuscate && !zero_stale_data) || - o >= mp->m_dir_geo->leafblk) { - ret = write_buf(iocur_top); - goto out_pop; - } + if (!obfuscate && !zero_stale_data) + goto write; - process_dir_data_block(iocur_top->data, o, - last == mp->m_dir_geo->fsbcount); + dp = iocur_top->data; + if (o >= mp->m_dir_geo->freeblk) { + /* TODO, zap any stale data */ + goto write; + } else if (o >= mp->m_dir_geo->leafblk) { + process_dir_leaf_block(dp); + } else { + process_dir_data_block(dp, o, + last == mp->m_dir_geo->fsbcount); + } iocur_top->need_crc = 1; +write: ret = write_buf(iocur_top); out_pop: pop_cur(); -- 2.47.2