]> Git Repo - linux.git/blobdiff - fs/buffer.c
Merge branch 'for-4.10/block' of git://git.kernel.dk/linux-block
[linux.git] / fs / buffer.c
index af5776da814af7d678ef98a90d9f2d9e488bb64b..a3bfd57c2697e5093d4563623fc9bdee9e8900a1 100644 (file)
@@ -3403,7 +3403,7 @@ void free_buffer_head(struct buffer_head *bh)
 }
 EXPORT_SYMBOL(free_buffer_head);
 
-static void buffer_exit_cpu(int cpu)
+static int buffer_exit_cpu_dead(unsigned int cpu)
 {
        int i;
        struct bh_lru *b = &per_cpu(bh_lrus, cpu);
@@ -3414,14 +3414,7 @@ static void buffer_exit_cpu(int cpu)
        }
        this_cpu_add(bh_accounting.nr, per_cpu(bh_accounting, cpu).nr);
        per_cpu(bh_accounting, cpu).nr = 0;
-}
-
-static int buffer_cpu_notify(struct notifier_block *self,
-                             unsigned long action, void *hcpu)
-{
-       if (action == CPU_DEAD || action == CPU_DEAD_FROZEN)
-               buffer_exit_cpu((unsigned long)hcpu);
-       return NOTIFY_OK;
+       return 0;
 }
 
 /**
@@ -3471,6 +3464,7 @@ EXPORT_SYMBOL(bh_submit_read);
 void __init buffer_init(void)
 {
        unsigned long nrpages;
+       int ret;
 
        bh_cachep = kmem_cache_create("buffer_head",
                        sizeof(struct buffer_head), 0,
@@ -3483,5 +3477,7 @@ void __init buffer_init(void)
         */
        nrpages = (nr_free_buffer_pages() * 10) / 100;
        max_buffer_heads = nrpages * (PAGE_SIZE / sizeof(struct buffer_head));
-       hotcpu_notifier(buffer_cpu_notify, 0);
+       ret = cpuhp_setup_state_nocalls(CPUHP_FS_BUFF_DEAD, "fs/buffer:dead",
+                                       NULL, buffer_exit_cpu_dead);
+       WARN_ON(ret < 0);
 }
This page took 0.025465 seconds and 4 git commands to generate.