@ -1721,15 +1721,14 @@ xfs_mount_log_sbunit(
* is present to prevent thrashing ) .
*/
# ifdef CONFIG_HOTPLUG_CPU
/*
* hot - plug CPU notifier support .
*
* We cannot use the hotcpu_register ( ) function because it does
* not allow notifier instances . We need a notifier per filesystem
* as we need to be able to identify the filesystem to balance
* the counters out . This is achieved by having a notifier block
* embedded in the xfs_mount_t and doing pointer magic to get the
* mount pointer from the notifier block address .
* We need a notifier per filesystem as we need to be able to identify
* the filesystem to balance the counters out . This is achieved by
* having a notifier block embedded in the xfs_mount_t and doing pointer
* magic to get the mount pointer from the notifier block address .
*/
STATIC int
xfs_icsb_cpu_notify (
@ -1779,6 +1778,7 @@ xfs_icsb_cpu_notify(
return NOTIFY_OK ;
}
# endif /* CONFIG_HOTPLUG_CPU */
int
xfs_icsb_init_counters (
@ -1791,9 +1791,11 @@ xfs_icsb_init_counters(
if ( mp - > m_sb_cnts = = NULL )
return - ENOMEM ;
# ifdef CONFIG_HOTPLUG_CPU
mp - > m_icsb_notifier . notifier_call = xfs_icsb_cpu_notify ;
mp - > m_icsb_notifier . priority = 0 ;
register_cpu_notifier ( & mp - > m_icsb_notifier ) ;
register_hotcpu_notifier ( & mp - > m_icsb_notifier ) ;
# endif /* CONFIG_HOTPLUG_CPU */
for_each_online_cpu ( i ) {
cntp = ( xfs_icsb_cnts_t * ) per_cpu_ptr ( mp - > m_sb_cnts , i ) ;
@ -1812,7 +1814,7 @@ xfs_icsb_destroy_counters(
xfs_mount_t * mp )
{
if ( mp - > m_sb_cnts ) {
unregister_cpu_notifier ( & mp - > m_icsb_notifier ) ;
unregister_hot cpu_notifier ( & mp - > m_icsb_notifier ) ;
free_percpu ( mp - > m_sb_cnts ) ;
}
}