Whamcloud - gitweb
LU-11568 ldlm: Remove use of SLAB_DESTROY_BY_RCU for ldlm lock slab 47/34147/5
authorOleg Drokin <green@whamcloud.com>
Thu, 31 Jan 2019 18:42:43 +0000 (13:42 -0500)
committerOleg Drokin <green@whamcloud.com>
Wed, 6 Feb 2019 06:57:44 +0000 (06:57 +0000)
Whatever it was doing does not appear to be necessary anymore
as evidenced with newer kernels where the define was removed,
but disabled in Lustre instead.
Another important reason to remove it is because rhel7.3+ seems
to have broken this RCU functionality and leads to frequent use
after frees.

Change-Id: I50991b9daf4ef06b24cb65d7a04a5e9b86706d36
Signed-off-by: Oleg Drokin <green@whamcloud.com>
Reviewed-on: https://review.whamcloud.com/34147
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Tested-by: Jenkins
Reviewed-by: James Simmons <uja.ornl@yahoo.com>
Tested-by: Maloo <maloo@whamcloud.com>
contrib/nn-final-symbol-list.txt
lustre/include/lustre_compat.h
lustre/ldlm/ldlm_lockd.c

index da99c7c..88fde1f 100644 (file)
 \batomic_sub_and_test\b
 \bcall_wait_handler\b
 \binit_completion_module\b
 \batomic_sub_and_test\b
 \bcall_wait_handler\b
 \binit_completion_module\b
-\bSLAB_DESTROY_BY_RCU\b
 \bSLAB_KERNEL\b
 \bSLAB_NOFS\b
 \bTASK_INTERRUPTIBLE\b
 \bSLAB_KERNEL\b
 \bSLAB_NOFS\b
 \bTASK_INTERRUPTIBLE\b
index df20146..4baa6ef 100644 (file)
@@ -142,10 +142,6 @@ static inline void ll_set_fs_pwd(struct fs_struct *fs, struct vfsmount *mnt,
 #define simple_setattr(dentry, ops) inode_setattr((dentry)->d_inode, ops)
 #endif
 
 #define simple_setattr(dentry, ops) inode_setattr((dentry)->d_inode, ops)
 #endif
 
-#ifndef SLAB_DESTROY_BY_RCU
-#define SLAB_DESTROY_BY_RCU 0
-#endif
-
 #ifndef HAVE_INIT_LIST_HEAD_RCU
 static inline void INIT_LIST_HEAD_RCU(struct list_head *list)
 {
 #ifndef HAVE_INIT_LIST_HEAD_RCU
 static inline void INIT_LIST_HEAD_RCU(struct list_head *list)
 {
index 55c6710..dd293e2 100644 (file)
@@ -3193,7 +3193,7 @@ int ldlm_init(void)
 
        ldlm_lock_slab = kmem_cache_create("ldlm_locks",
                              sizeof(struct ldlm_lock), 0,
 
        ldlm_lock_slab = kmem_cache_create("ldlm_locks",
                              sizeof(struct ldlm_lock), 0,
-                             SLAB_HWCACHE_ALIGN | SLAB_DESTROY_BY_RCU, NULL);
+                             SLAB_HWCACHE_ALIGN, NULL);
        if (ldlm_lock_slab == NULL)
                goto out_resource;
 
        if (ldlm_lock_slab == NULL)
                goto out_resource;