From: Mikhail Pershin Date: Sun, 12 Nov 2017 21:20:26 +0000 (+0300) Subject: LU-10232 lov: call cl_object_attr_get under cl_attr lock X-Git-Tag: 2.10.57~86 X-Git-Url: https://git.whamcloud.com/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F52%2F30052%2F2;p=fs%2Flustre-release.git LU-10232 lov: call cl_object_attr_get under cl_attr lock cl_object_attr_get() must be called under cl_object_attr_lock get. There is place in lov_getstripe where it is called without that lock. Signed-off-by: Mikhail Pershin Change-Id: Ia0a2322ba4ff0ff4affb081375cb108fbf2988c4 Reviewed-on: https://review.whamcloud.com/30052 Tested-by: Jenkins Tested-by: Maloo Reviewed-by: Fan Yong Reviewed-by: Oleg Drokin --- diff --git a/lustre/lov/lov_pack.c b/lustre/lov/lov_pack.c index efcb442..c7e9447 100644 --- a/lustre/lov/lov_pack.c +++ b/lustre/lov/lov_pack.c @@ -418,7 +418,9 @@ int lov_getstripe(const struct lu_env *env, struct lov_object *obj, attr.cat_size = 0; cl_obj = cl_object_top(&obj->lo_cl); + cl_object_attr_lock(cl_obj); cl_object_attr_get(env, cl_obj, &attr); + cl_object_attr_unlock(cl_obj); /* return the last instantiated component if file size * is non-zero, otherwise, return the last component.*/