Whamcloud - gitweb
LU-10232 lov: call cl_object_attr_get under cl_attr lock 52/30052/2
authorMikhail Pershin <mike.pershin@intel.com>
Sun, 12 Nov 2017 21:20:26 +0000 (00:20 +0300)
committerOleg Drokin <oleg.drokin@intel.com>
Sun, 17 Dec 2017 06:21:09 +0000 (06:21 +0000)
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 <mike.pershin@intel.com>
Change-Id: Ia0a2322ba4ff0ff4affb081375cb108fbf2988c4
Reviewed-on: https://review.whamcloud.com/30052
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Fan Yong <fan.yong@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
lustre/lov/lov_pack.c

index efcb442..c7e9447 100644 (file)
@@ -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.*/