From: wangdi Date: Thu, 28 Nov 2013 12:03:17 +0000 (-0800) Subject: LU-2793 fld: send special seq lookup request to MDT0 X-Git-Tag: 2.3.62~11 X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=commitdiff_plain;h=7bcf31e8fa8ccb900d3c015a5e7202b8bcca97bd LU-2793 fld: send special seq lookup request to MDT0 Since almost all special sequence locates on MDT0, we should send all seq lookup req to MDT0, especially in an evironment where other MDTs might not be started at all. Signed-off-by: wang di Change-Id: Ifda9cb434a217d1e54dc2ef4fcb7628fca049d9d Reviewed-on: http://review.whamcloud.com/5319 Tested-by: Hudson Tested-by: Maloo Reviewed-by: Andreas Dilger Reviewed-by: Fan Yong --- diff --git a/lustre/fld/fld_request.c b/lustre/fld/fld_request.c index 1b43b3d..55e93cb 100644 --- a/lustre/fld/fld_request.c +++ b/lustre/fld/fld_request.c @@ -130,7 +130,15 @@ fld_rrb_scan(struct lu_client_fld *fld, seqno_t seq) int hash; ENTRY; - hash = fld_rrb_hash(fld, seq); + /* Because almost all of special sequence located in MDT0, + * it should go to index 0 directly, instead of calculating + * hash again, and also if other MDTs is not being connected, + * the fld lookup requests(for seq on MDT0) should not be + * blocked because of other MDTs */ + if (fid_seq_is_norm(seq)) + hash = fld_rrb_hash(fld, seq); + else + hash = 0; cfs_list_for_each_entry(target, &fld->lcf_targets, ft_chain) { if (target->ft_idx == hash)