From 3123e7cae54f5e9f7e068cd60d53b882b1a21653 Mon Sep 17 00:00:00 2001 From: Alex Zhuravlev Date: Thu, 4 Oct 2012 14:51:24 +0400 Subject: [PATCH] LU-2087 ofd: refresh blocks in lvb from rpc like obdfilter does. let blocks only increase unless specified with the flag. this should fix sanityn/4. Signed-off-by: Alex Zhuravlev Change-Id: I85bf45f091637faf39c65e0acf331f37dab7af7e Reviewed-on: http://review.whamcloud.com/4180 Reviewed-by: Andreas Dilger Tested-by: Hudson Reviewed-by: wangdi Tested-by: Maloo Reviewed-by: Johann Lombardi --- lustre/ofd/ofd_lvb.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lustre/ofd/ofd_lvb.c b/lustre/ofd/ofd_lvb.c index ae80fdb..2e201cb 100644 --- a/lustre/ofd/ofd_lvb.c +++ b/lustre/ofd/ofd_lvb.c @@ -186,6 +186,12 @@ static int ofd_lvbo_update(struct ldlm_resource *res, lvb->lvb_ctime, rpc_lvb->lvb_ctime); lvb->lvb_ctime = rpc_lvb->lvb_ctime; } + if (rpc_lvb->lvb_blocks > lvb->lvb_blocks || !increase_only) { + CDEBUG(D_DLMTRACE, "res: "LPU64" updating lvb blocks: " + LPU64" -> "LPU64"\n", res->lr_name.name[0], + lvb->lvb_blocks, rpc_lvb->lvb_blocks); + lvb->lvb_blocks = rpc_lvb->lvb_blocks; + } unlock_res(res); } @@ -226,7 +232,7 @@ disk_update: lvb->lvb_ctime, info->fti_attr.la_ctime); lvb->lvb_ctime = info->fti_attr.la_ctime; } - if (lvb->lvb_blocks != info->fti_attr.la_blocks) { + if (info->fti_attr.la_blocks > lvb->lvb_blocks || !increase_only) { CDEBUG(D_DLMTRACE,"res: "LPU64" updating lvb blocks from disk: " LPU64" -> %llu\n", res->lr_name.name[0], lvb->lvb_blocks, -- 1.8.3.1