X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fmdt%2Fmdt_lvb.c;h=d4c50972c1a66cd4416c005dc007f23082703eaf;hb=cc6ef11d2f972ebc440013bddda87a536a09750c;hp=d81b21f213faa073df4fdef930ab004ef1fa8d85;hpb=2b294992edce5af7b79d4300ed3aa1ea6a8db850;p=fs%2Flustre-release.git diff --git a/lustre/mdt/mdt_lvb.c b/lustre/mdt/mdt_lvb.c index d81b21f..d4c5097 100644 --- a/lustre/mdt/mdt_lvb.c +++ b/lustre/mdt/mdt_lvb.c @@ -21,7 +21,7 @@ * GPL HEADER END */ /* - * Copyright (c) 2012, 2014, Intel Corporation. + * Copyright (c) 2012, 2015, Intel Corporation. * Use is subject to license terms. * * lustre/mdt/mdt_lvb.c @@ -114,7 +114,8 @@ static int mdt_lvbo_fill(struct ldlm_lock *lock, void *lvb, int lvblen) RETURN(rc); } - if (!ldlm_has_layout(lock)) + /* Only fill layout if layout lock is granted */ + if (!ldlm_has_layout(lock) || lock->l_granted_mode != lock->l_req_mode) RETURN(0); /* layout lock will be granted to client, fill in lvb with layout */ @@ -196,9 +197,9 @@ static int mdt_lvbo_free(struct ldlm_resource *res) } struct ldlm_valblock_ops mdt_lvbo = { - lvbo_init: mdt_lvbo_init, - lvbo_update: mdt_lvbo_update, - lvbo_size: mdt_lvbo_size, - lvbo_fill: mdt_lvbo_fill, - lvbo_free: mdt_lvbo_free + .lvbo_init = mdt_lvbo_init, + .lvbo_update = mdt_lvbo_update, + .lvbo_size = mdt_lvbo_size, + .lvbo_fill = mdt_lvbo_fill, + .lvbo_free = mdt_lvbo_free };