From 9dd706edb71feeea4670360c99853e916ff8c81a Mon Sep 17 00:00:00 2001 From: Mikhail Pershin Date: Mon, 13 Nov 2017 00:20:26 +0300 Subject: [PATCH] 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 --- lustre/lov/lov_pack.c | 2 ++ 1 file changed, 2 insertions(+) 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.*/ -- 1.8.3.1