diff mbox series

[topic/core-for-CI] Revert "debugfs: annotate debugfs handlers vs. removal with lockdep"

Message ID 20231205132003.1535960-1-chaitanya.kumar.borah@intel.com (mailing list archive)
State New, archived
Headers show
Series [topic/core-for-CI] Revert "debugfs: annotate debugfs handlers vs. removal with lockdep" | expand

Commit Message

Borah, Chaitanya Kumar Dec. 5, 2023, 1:20 p.m. UTC
From: Johannes Berg <johannes.berg@intel.com>

This reverts commit f4acfcd4deb1 ("debugfs: annotate debugfs handlers
vs. removal with lockdep"), it appears to have false positives and
really shouldn't have been in the -rc series with the fixes anyway.

topic/core-for-CI note: cherry-picked from
https://patchwork.kernel.org/project/linux-fsdevel/patch/20231202114936.fd55431ab160.I911aa53abeeca138126f690d383a89b13eb05667@changeid/

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 fs/debugfs/file.c     | 10 ----------
 fs/debugfs/inode.c    |  7 -------
 fs/debugfs/internal.h |  6 ------
 3 files changed, 23 deletions(-)

Comments

Jani Nikula Dec. 5, 2023, 1:44 p.m. UTC | #1
On Tue, 05 Dec 2023, Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com> wrote:
> From: Johannes Berg <johannes.berg@intel.com>
>
> This reverts commit f4acfcd4deb1 ("debugfs: annotate debugfs handlers
> vs. removal with lockdep"), it appears to have false positives and
> really shouldn't have been in the -rc series with the fixes anyway.
>
> topic/core-for-CI note: cherry-picked from
> https://patchwork.kernel.org/project/linux-fsdevel/patch/20231202114936.fd55431ab160.I911aa53abeeca138126f690d383a89b13eb05667@changeid/
>
> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
> Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

Johannes, Greg, this is for our CI only, please ignore, and sorry for
the noise.

BR,
Jani.

> ---
>  fs/debugfs/file.c     | 10 ----------
>  fs/debugfs/inode.c    |  7 -------
>  fs/debugfs/internal.h |  6 ------
>  3 files changed, 23 deletions(-)
>
> diff --git a/fs/debugfs/file.c b/fs/debugfs/file.c
> index a5ade8c16375..5063434be0fc 100644
> --- a/fs/debugfs/file.c
> +++ b/fs/debugfs/file.c
> @@ -108,12 +108,6 @@ int debugfs_file_get(struct dentry *dentry)
>  			kfree(fsd);
>  			fsd = READ_ONCE(dentry->d_fsdata);
>  		}
> -#ifdef CONFIG_LOCKDEP
> -		fsd->lock_name = kasprintf(GFP_KERNEL, "debugfs:%pd", dentry);
> -		lockdep_register_key(&fsd->key);
> -		lockdep_init_map(&fsd->lockdep_map, fsd->lock_name ?: "debugfs",
> -				 &fsd->key, 0);
> -#endif
>  		INIT_LIST_HEAD(&fsd->cancellations);
>  		mutex_init(&fsd->cancellations_mtx);
>  	}
> @@ -132,8 +126,6 @@ int debugfs_file_get(struct dentry *dentry)
>  	if (!refcount_inc_not_zero(&fsd->active_users))
>  		return -EIO;
>  
> -	lock_map_acquire_read(&fsd->lockdep_map);
> -
>  	return 0;
>  }
>  EXPORT_SYMBOL_GPL(debugfs_file_get);
> @@ -151,8 +143,6 @@ void debugfs_file_put(struct dentry *dentry)
>  {
>  	struct debugfs_fsdata *fsd = READ_ONCE(dentry->d_fsdata);
>  
> -	lock_map_release(&fsd->lockdep_map);
> -
>  	if (refcount_dec_and_test(&fsd->active_users))
>  		complete(&fsd->active_users_drained);
>  }
> diff --git a/fs/debugfs/inode.c b/fs/debugfs/inode.c
> index e4e7fe1bd9fb..034a617cb1a5 100644
> --- a/fs/debugfs/inode.c
> +++ b/fs/debugfs/inode.c
> @@ -243,10 +243,6 @@ static void debugfs_release_dentry(struct dentry *dentry)
>  
>  	/* check it wasn't a dir (no fsdata) or automount (no real_fops) */
>  	if (fsd && fsd->real_fops) {
> -#ifdef CONFIG_LOCKDEP
> -		lockdep_unregister_key(&fsd->key);
> -		kfree(fsd->lock_name);
> -#endif
>  		WARN_ON(!list_empty(&fsd->cancellations));
>  		mutex_destroy(&fsd->cancellations_mtx);
>  	}
> @@ -755,9 +751,6 @@ static void __debugfs_file_removed(struct dentry *dentry)
>  	if ((unsigned long)fsd & DEBUGFS_FSDATA_IS_REAL_FOPS_BIT)
>  		return;
>  
> -	lock_map_acquire(&fsd->lockdep_map);
> -	lock_map_release(&fsd->lockdep_map);
> -
>  	/* if we hit zero, just wait for all to finish */
>  	if (!refcount_dec_and_test(&fsd->active_users)) {
>  		wait_for_completion(&fsd->active_users_drained);
> diff --git a/fs/debugfs/internal.h b/fs/debugfs/internal.h
> index 0c4c68cf161f..dae80c2a469e 100644
> --- a/fs/debugfs/internal.h
> +++ b/fs/debugfs/internal.h
> @@ -7,7 +7,6 @@
>  
>  #ifndef _DEBUGFS_INTERNAL_H_
>  #define _DEBUGFS_INTERNAL_H_
> -#include <linux/lockdep.h>
>  #include <linux/list.h>
>  
>  struct file_operations;
> @@ -25,11 +24,6 @@ struct debugfs_fsdata {
>  		struct {
>  			refcount_t active_users;
>  			struct completion active_users_drained;
> -#ifdef CONFIG_LOCKDEP
> -			struct lockdep_map lockdep_map;
> -			struct lock_class_key key;
> -			char *lock_name;
> -#endif
>  
>  			/* protect cancellations */
>  			struct mutex cancellations_mtx;
diff mbox series

Patch

diff --git a/fs/debugfs/file.c b/fs/debugfs/file.c
index a5ade8c16375..5063434be0fc 100644
--- a/fs/debugfs/file.c
+++ b/fs/debugfs/file.c
@@ -108,12 +108,6 @@  int debugfs_file_get(struct dentry *dentry)
 			kfree(fsd);
 			fsd = READ_ONCE(dentry->d_fsdata);
 		}
-#ifdef CONFIG_LOCKDEP
-		fsd->lock_name = kasprintf(GFP_KERNEL, "debugfs:%pd", dentry);
-		lockdep_register_key(&fsd->key);
-		lockdep_init_map(&fsd->lockdep_map, fsd->lock_name ?: "debugfs",
-				 &fsd->key, 0);
-#endif
 		INIT_LIST_HEAD(&fsd->cancellations);
 		mutex_init(&fsd->cancellations_mtx);
 	}
@@ -132,8 +126,6 @@  int debugfs_file_get(struct dentry *dentry)
 	if (!refcount_inc_not_zero(&fsd->active_users))
 		return -EIO;
 
-	lock_map_acquire_read(&fsd->lockdep_map);
-
 	return 0;
 }
 EXPORT_SYMBOL_GPL(debugfs_file_get);
@@ -151,8 +143,6 @@  void debugfs_file_put(struct dentry *dentry)
 {
 	struct debugfs_fsdata *fsd = READ_ONCE(dentry->d_fsdata);
 
-	lock_map_release(&fsd->lockdep_map);
-
 	if (refcount_dec_and_test(&fsd->active_users))
 		complete(&fsd->active_users_drained);
 }
diff --git a/fs/debugfs/inode.c b/fs/debugfs/inode.c
index e4e7fe1bd9fb..034a617cb1a5 100644
--- a/fs/debugfs/inode.c
+++ b/fs/debugfs/inode.c
@@ -243,10 +243,6 @@  static void debugfs_release_dentry(struct dentry *dentry)
 
 	/* check it wasn't a dir (no fsdata) or automount (no real_fops) */
 	if (fsd && fsd->real_fops) {
-#ifdef CONFIG_LOCKDEP
-		lockdep_unregister_key(&fsd->key);
-		kfree(fsd->lock_name);
-#endif
 		WARN_ON(!list_empty(&fsd->cancellations));
 		mutex_destroy(&fsd->cancellations_mtx);
 	}
@@ -755,9 +751,6 @@  static void __debugfs_file_removed(struct dentry *dentry)
 	if ((unsigned long)fsd & DEBUGFS_FSDATA_IS_REAL_FOPS_BIT)
 		return;
 
-	lock_map_acquire(&fsd->lockdep_map);
-	lock_map_release(&fsd->lockdep_map);
-
 	/* if we hit zero, just wait for all to finish */
 	if (!refcount_dec_and_test(&fsd->active_users)) {
 		wait_for_completion(&fsd->active_users_drained);
diff --git a/fs/debugfs/internal.h b/fs/debugfs/internal.h
index 0c4c68cf161f..dae80c2a469e 100644
--- a/fs/debugfs/internal.h
+++ b/fs/debugfs/internal.h
@@ -7,7 +7,6 @@ 
 
 #ifndef _DEBUGFS_INTERNAL_H_
 #define _DEBUGFS_INTERNAL_H_
-#include <linux/lockdep.h>
 #include <linux/list.h>
 
 struct file_operations;
@@ -25,11 +24,6 @@  struct debugfs_fsdata {
 		struct {
 			refcount_t active_users;
 			struct completion active_users_drained;
-#ifdef CONFIG_LOCKDEP
-			struct lockdep_map lockdep_map;
-			struct lock_class_key key;
-			char *lock_name;
-#endif
 
 			/* protect cancellations */
 			struct mutex cancellations_mtx;