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.3-RC1~12 X-Git-Url: https://git.whamcloud.com/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F86%2F30586%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. Lustre-change: https://review.whamcloud.com/30052 Lustre-commit: 80515fa15ee76fb0174fd3be80c4a113a8d3c875 Signed-off-by: Mikhail Pershin Change-Id: Ia0a2322ba4ff0ff4affb081375cb108fbf2988c4 Reviewed-by: Fan Yong Signed-off-by: Minh Diep Reviewed-on: https://review.whamcloud.com/30586 Tested-by: Jenkins Tested-by: Maloo Reviewed-by: John L. Hammond --- diff --git a/lustre/lov/lov_pack.c b/lustre/lov/lov_pack.c index bdcf146..f7a14c3 100644 --- a/lustre/lov/lov_pack.c +++ b/lustre/lov/lov_pack.c @@ -419,7 +419,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.*/