Whamcloud - gitweb
LU-12491 obdclass: add comment for rcu handling in lu_env_remove 47/35447/4
authorJames Simmons <jsimmons@infradead.org>
Mon, 8 Jul 2019 20:47:40 +0000 (16:47 -0400)
committerOleg Drokin <green@whamcloud.com>
Fri, 12 Jul 2019 05:20:19 +0000 (05:20 +0000)
During the review it was pointed out why the RCU lock was dropped
in lu_env_remove() but the code itself doesn't explain why. Add
a comment giving the details why RCU locking is not needed.

Test-parameters: trivial

Change-Id: I4fd761d2e1b4adad8e970904d56cdcd057dfe7d5
Signed-off-by: James Simmons <uja.ornl@yahoo.com>
Reviewed-on: https://review.whamcloud.com/35447
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Shaun Tancheff <stancheff@cray.com>
Reviewed-by: Neil Brown <neilb@suse.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/obdclass/lu_object.c

index e308851..519ef62 100644 (file)
@@ -1948,6 +1948,11 @@ void lu_env_remove(struct lu_env *env)
                }
        }
 
+       /* The rcu_lock is not taking in this case since the key
+        * used is the actual task_struct. This implies that each
+        * object is only removed by the owning thread, so there
+        * can never be a race on a particular object.
+        */
        lei = rhashtable_lookup_fast(&lu_env_rhash, &task,
                                     lu_env_rhash_params);
        if (lei && rhashtable_remove_fast(&lu_env_rhash, &lei->lei_linkage,