libfs: Replace rcu_assign_pointer() with RCU_INIT_POINTER()
Subsystems (2)
PATCH 1/1 libfs: Replace rcu_assign_pointer() with RCU_INIT_POINTER()
The uses of "rcu_assign_pointer()" are NULLing out the pointers. According to RCU_INIT_POINTER()'s block comment:
"1. This use of RCU_INIT_POINTER() is NULLing out the pointer"
it is better to use it instead of rcu_assign_pointer() because it has a smaller overhead.
The following Coccinelle semantic patch was used:
@@
@@
- rcu_assign_pointer
+ RCU_INIT_POINTER
(..., NULL)
--- drivers/scsi/libfc/fc_libfc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/scsi/libfc/fc_libfc.c +2 -2
@@ -296,9 +296,9 @@ void fc_fc4_deregister_provider(enum fc_fh_type type, struct fc4_prov *prov)BUG_ON (type >=FC_FC4_PROV_SIZE );mutex_lock (&fc_prov_mutex);if (prov->recv) -rcu_assign_pointer (fc_passive_prov[type],NULL ); +RCU_INIT_POINTER (fc_passive_prov[type],NULL );else -rcu_assign_pointer (fc_active_prov[type],NULL ); +RCU_INIT_POINTER (fc_active_prov[type],NULL );mutex_unlock (&fc_prov_mutex);synchronize_rcu (); }
Signature · 1 line
1.9.1
Quoted 25 lines · Andreea-Cristina Bernat
The uses of "
rcu_assign_pointer()" are NULLing out the pointers. According to RCU_INIT_POINTER()'s block comment:
"1. This use ofRCU_INIT_POINTER()is NULLing out the pointer"
it is better to use it instead ofrcu_assign_pointer()because it has a smaller overhead.The following Coccinelle semantic patch was used:
@@
@@-
rcu_assign_pointer
+RCU_INIT_POINTER
(..., NULL)Signed-off-by Andreea-Cristina Bernat <[email protected]>--- drivers/scsi/libfc/fc_libfc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)drivers/scsi/libfc/fc_libfc.c +0
-0@@ -296,9 +296,9 @@ void fc_fc4_deregister_provider(enum fc_fh_type type, struct fc4_prov *prov)BUG_ON (type >=FC_FC4_PROV_SIZE );
drivers/scsi/libfc/fc_libfc.c void fc_fc4_deregister_provider(enum fc_fh_type type, struct fc4_prov *prov) · line 304
Quoted 10 lines
drivers/scsi/libfc/fc_libfc.c +2
-2mutex_lock (&fc_prov_mutex);if (prov->recv) -rcu_assign_pointer (fc_passive_prov[type],NULL ); +RCU_INIT_POINTER (fc_passive_prov[type],NULL );else -rcu_assign_pointer (fc_active_prov[type],NULL ); +RCU_INIT_POINTER (fc_active_prov[type],NULL );mutex_unlock (&fc_prov_mutex);synchronize_rcu (); }
Looks like patch is not yet applied.
Christoph Hellwig
AppliedThanks,
applied to drivers-for-3.18