Whamcloud - gitweb
LU-11568 ldlm: Remove use of SLAB_DESTROY_BY_RCU for ldlm lock slab 34/34434/2
authorOleg Drokin <green@whamcloud.com>
Thu, 31 Jan 2019 18:42:43 +0000 (13:42 -0500)
committerOleg Drokin <green@whamcloud.com>
Tue, 19 Mar 2019 05:59:56 +0000 (05:59 +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.

This patch is back-port from:
Lustre-commit: 82d014e71e14671e876055851a0d37e98b4cc079
Lustre-change: https://review.whamcloud.com/34147

Change-Id: I50991b9daf4ef06b24cb65d7a04a5e9b86706d36
Signed-off-by: Oleg Drokin <green@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: James Simmons <uja.ornl@yahoo.com>
Reviewed-on: https://review.whamcloud.com/34434
Tested-by: Jenkins
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
-\bSLAB_DESTROY_BY_RCU\b
 \bSLAB_KERNEL\b
 \bSLAB_NOFS\b
 \bTASK_INTERRUPTIBLE\b
index fdb2010..de162f9 100644 (file)
@@ -144,10 +144,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
 
-#ifndef SLAB_DESTROY_BY_RCU
-#define SLAB_DESTROY_BY_RCU 0
-#endif
-
 #ifndef HAVE_DQUOT_SUSPEND
 # define ll_vfs_dq_init             vfs_dq_init
 # define ll_vfs_dq_drop             vfs_dq_drop
index 5362e8d..fdd3ca3 100644 (file)
@@ -3190,7 +3190,7 @@ int ldlm_init(void)
 
        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;