}
 
 static int
-op_axp_create_files(struct super_block *sb, struct dentry *root)
+op_axp_create_files(struct dentry *root)
 {
        int i;
 
                char buf[4];
 
                snprintf(buf, sizeof buf, "%d", i);
-               dir = oprofilefs_mkdir(sb, root, buf);
+               dir = oprofilefs_mkdir(root->d_sb, root, buf);
 
-               oprofilefs_create_ulong(sb, dir, "enabled", &ctr[i].enabled);
-                oprofilefs_create_ulong(sb, dir, "event", &ctr[i].event);
-               oprofilefs_create_ulong(sb, dir, "count", &ctr[i].count);
+               oprofilefs_create_ulong(root->d_sb, dir, "enabled", &ctr[i].enabled);
+                oprofilefs_create_ulong(root->d_sb, dir, "event", &ctr[i].event);
+               oprofilefs_create_ulong(root->d_sb, dir, "count", &ctr[i].count);
                /* Dummies.  */
-               oprofilefs_create_ulong(sb, dir, "kernel", &ctr[i].kernel);
-               oprofilefs_create_ulong(sb, dir, "user", &ctr[i].user);
-               oprofilefs_create_ulong(sb, dir, "unit_mask", &ctr[i].unit_mask);
+               oprofilefs_create_ulong(root->d_sb, dir, "kernel", &ctr[i].kernel);
+               oprofilefs_create_ulong(root->d_sb, dir, "user", &ctr[i].user);
+               oprofilefs_create_ulong(root->d_sb, dir, "unit_mask", &ctr[i].unit_mask);
        }
 
        if (model->can_set_proc_mode) {
-               oprofilefs_create_ulong(sb, root, "enable_pal",
+               oprofilefs_create_ulong(root->d_sb, root, "enable_pal",
                                        &sys.enable_pal);
-               oprofilefs_create_ulong(sb, root, "enable_kernel",
+               oprofilefs_create_ulong(root->d_sb, root, "enable_kernel",
                                        &sys.enable_kernel);
-               oprofilefs_create_ulong(sb, root, "enable_user",
+               oprofilefs_create_ulong(root->d_sb, root, "enable_user",
                                        &sys.enable_user);
        }
 
 
        return IRQ_HANDLED;
 }
 
-static int avr32_perf_counter_create_files(struct super_block *sb,
-               struct dentry *root)
+static int avr32_perf_counter_create_files(struct dentry *root)
 {
        struct dentry *dir;
        unsigned int i;
 
        for (i = 0; i < NR_counter; i++) {
                snprintf(filename, sizeof(filename), "%u", i);
-               dir = oprofilefs_mkdir(sb, root, filename);
+               dir = oprofilefs_mkdir(root->d_sb, root, filename);
 
-               oprofilefs_create_ulong(sb, dir, "enabled",
+               oprofilefs_create_ulong(root->d_sb, dir, "enabled",
                                &counter[i].enabled);
-               oprofilefs_create_ulong(sb, dir, "event",
+               oprofilefs_create_ulong(root->d_sb, dir, "event",
                                &counter[i].event);
-               oprofilefs_create_ulong(sb, dir, "count",
+               oprofilefs_create_ulong(root->d_sb, dir, "count",
                                &counter[i].count);
 
                /* Dummy entries */
-               oprofilefs_create_ulong(sb, dir, "kernel",
+               oprofilefs_create_ulong(root->d_sb, dir, "kernel",
                                &counter[i].kernel);
-               oprofilefs_create_ulong(sb, dir, "user",
+               oprofilefs_create_ulong(root->d_sb, dir, "user",
                                &counter[i].user);
-               oprofilefs_create_ulong(sb, dir, "unit_mask",
+               oprofilefs_create_ulong(root->d_sb, dir, "unit_mask",
                                &counter[i].unit_mask);
        }
 
 
        return 0;
 }
 
-static int op_mips_create_files(struct super_block *sb, struct dentry *root)
+static int op_mips_create_files(struct dentry *root)
 {
        int i;
 
                char buf[4];
 
                snprintf(buf, sizeof buf, "%d", i);
-               dir = oprofilefs_mkdir(sb, root, buf);
-
-               oprofilefs_create_ulong(sb, dir, "enabled", &ctr[i].enabled);
-               oprofilefs_create_ulong(sb, dir, "event", &ctr[i].event);
-               oprofilefs_create_ulong(sb, dir, "count", &ctr[i].count);
-               oprofilefs_create_ulong(sb, dir, "kernel", &ctr[i].kernel);
-               oprofilefs_create_ulong(sb, dir, "user", &ctr[i].user);
-               oprofilefs_create_ulong(sb, dir, "exl", &ctr[i].exl);
+               dir = oprofilefs_mkdir(root->d_sb, root, buf);
+
+               oprofilefs_create_ulong(root->d_sb, dir, "enabled", &ctr[i].enabled);
+               oprofilefs_create_ulong(root->d_sb, dir, "event", &ctr[i].event);
+               oprofilefs_create_ulong(root->d_sb, dir, "count", &ctr[i].count);
+               oprofilefs_create_ulong(root->d_sb, dir, "kernel", &ctr[i].kernel);
+               oprofilefs_create_ulong(root->d_sb, dir, "user", &ctr[i].user);
+               oprofilefs_create_ulong(root->d_sb, dir, "exl", &ctr[i].exl);
                /* Dummy.  */
-               oprofilefs_create_ulong(sb, dir, "unit_mask", &ctr[i].unit_mask);
+               oprofilefs_create_ulong(root->d_sb, dir, "unit_mask", &ctr[i].unit_mask);
        }
 
        return 0;
 
                 model->global_stop();
 }
 
-static int op_powerpc_create_files(struct super_block *sb, struct dentry *root)
+static int op_powerpc_create_files(struct dentry *root)
 {
        int i;
 
         * There is one mmcr0, mmcr1 and mmcra for setting the events for
         * all of the counters.
         */
-       oprofilefs_create_ulong(sb, root, "mmcr0", &sys.mmcr0);
-       oprofilefs_create_ulong(sb, root, "mmcr1", &sys.mmcr1);
-       oprofilefs_create_ulong(sb, root, "mmcra", &sys.mmcra);
+       oprofilefs_create_ulong(root->d_sb, root, "mmcr0", &sys.mmcr0);
+       oprofilefs_create_ulong(root->d_sb, root, "mmcr1", &sys.mmcr1);
+       oprofilefs_create_ulong(root->d_sb, root, "mmcra", &sys.mmcra);
 #ifdef CONFIG_OPROFILE_CELL
        /* create a file the user tool can check to see what level of profiling
         * support exits with this kernel. Initialize bit mask to indicate
         * If the file does not exist, then the kernel only supports SPU
         * cycle profiling, PPU event and cycle profiling.
         */
-       oprofilefs_create_ulong(sb, root, "cell_support", &sys.cell_support);
+       oprofilefs_create_ulong(root->d_sb, root, "cell_support", &sys.cell_support);
        sys.cell_support = 0x1; /* Note, the user OProfile tool must check
                                 * that this bit is set before attempting to
                                 * user SPU event profiling.  Older kernels
                char buf[4];
 
                snprintf(buf, sizeof buf, "%d", i);
-               dir = oprofilefs_mkdir(sb, root, buf);
+               dir = oprofilefs_mkdir(root->d_sb, root, buf);
 
-               oprofilefs_create_ulong(sb, dir, "enabled", &ctr[i].enabled);
-               oprofilefs_create_ulong(sb, dir, "event", &ctr[i].event);
-               oprofilefs_create_ulong(sb, dir, "count", &ctr[i].count);
+               oprofilefs_create_ulong(root->d_sb, dir, "enabled", &ctr[i].enabled);
+               oprofilefs_create_ulong(root->d_sb, dir, "event", &ctr[i].event);
+               oprofilefs_create_ulong(root->d_sb, dir, "count", &ctr[i].count);
 
                /*
                 * Classic PowerPC doesn't support per-counter
                 * Book-E style performance monitors, we do
                 * support them.
                 */
-               oprofilefs_create_ulong(sb, dir, "kernel", &ctr[i].kernel);
-               oprofilefs_create_ulong(sb, dir, "user", &ctr[i].user);
+               oprofilefs_create_ulong(root->d_sb, dir, "kernel", &ctr[i].kernel);
+               oprofilefs_create_ulong(root->d_sb, dir, "user", &ctr[i].user);
 
-               oprofilefs_create_ulong(sb, dir, "unit_mask", &ctr[i].unit_mask);
+               oprofilefs_create_ulong(root->d_sb, dir, "unit_mask", &ctr[i].unit_mask);
        }
 
-       oprofilefs_create_ulong(sb, root, "enable_kernel", &sys.enable_kernel);
-       oprofilefs_create_ulong(sb, root, "enable_user", &sys.enable_user);
+       oprofilefs_create_ulong(root->d_sb, root, "enable_kernel", &sys.enable_kernel);
+       oprofilefs_create_ulong(root->d_sb, root, "enable_user", &sys.enable_user);
 
        /* Default to tracing both kernel and user */
        sys.enable_kernel = 1;
 
 };
 
 
-static int oprofile_create_hwsampling_files(struct super_block *sb,
-                                           struct dentry *root)
+static int oprofile_create_hwsampling_files(struct dentry *root)
 {
        struct dentry *dir;
 
-       dir = oprofilefs_mkdir(sb, root, "timer");
+       dir = oprofilefs_mkdir(root->d_sb, root, "timer");
        if (!dir)
                return -EINVAL;
 
-       oprofilefs_create_file(sb, dir, "enabled", &timer_enabled_fops);
+       oprofilefs_create_file(root->d_sb, dir, "enabled", &timer_enabled_fops);
 
        if (!hwsampler_available)
                return 0;
                 * and can only be set to 0.
                 */
 
-               dir = oprofilefs_mkdir(sb, root, "0");
+               dir = oprofilefs_mkdir(root->d_sb, root, "0");
                if (!dir)
                        return -EINVAL;
 
-               oprofilefs_create_file(sb, dir, "enabled", &hwsampler_fops);
-               oprofilefs_create_file(sb, dir, "event", &zero_fops);
-               oprofilefs_create_file(sb, dir, "count", &hw_interval_fops);
-               oprofilefs_create_file(sb, dir, "unit_mask", &zero_fops);
-               oprofilefs_create_file(sb, dir, "kernel", &kernel_fops);
-               oprofilefs_create_file(sb, dir, "user", &user_fops);
-               oprofilefs_create_ulong(sb, dir, "hw_sdbt_blocks",
+               oprofilefs_create_file(root->d_sb, dir, "enabled", &hwsampler_fops);
+               oprofilefs_create_file(root->d_sb, dir, "event", &zero_fops);
+               oprofilefs_create_file(root->d_sb, dir, "count", &hw_interval_fops);
+               oprofilefs_create_file(root->d_sb, dir, "unit_mask", &zero_fops);
+               oprofilefs_create_file(root->d_sb, dir, "kernel", &kernel_fops);
+               oprofilefs_create_file(root->d_sb, dir, "user", &user_fops);
+               oprofilefs_create_ulong(root->d_sb, dir, "hw_sdbt_blocks",
                                        &oprofile_sdbt_blocks);
 
        } else {
                 * space tools.  The /dev/oprofile/hwsampling fs is
                 * provided in that case.
                 */
-               dir = oprofilefs_mkdir(sb, root, "hwsampling");
+               dir = oprofilefs_mkdir(root->d_sb, root, "hwsampling");
                if (!dir)
                        return -EINVAL;
 
-               oprofilefs_create_file(sb, dir, "hwsampler",
+               oprofilefs_create_file(root->d_sb, dir, "hwsampler",
                                       &hwsampler_fops);
-               oprofilefs_create_file(sb, dir, "hw_interval",
+               oprofilefs_create_file(root->d_sb, dir, "hw_interval",
                                       &hw_interval_fops);
-               oprofilefs_create_ro_ulong(sb, dir, "hw_min_interval",
+               oprofilefs_create_ro_ulong(root->d_sb, dir, "hw_min_interval",
                                           &oprofile_min_interval);
-               oprofilefs_create_ro_ulong(sb, dir, "hw_max_interval",
+               oprofilefs_create_ro_ulong(root->d_sb, dir, "hw_max_interval",
                                           &oprofile_max_interval);
-               oprofilefs_create_ulong(sb, dir, "hw_sdbt_blocks",
+               oprofilefs_create_ulong(root->d_sb, dir, "hw_sdbt_blocks",
                                        &oprofile_sdbt_blocks);
        }
        return 0;
 
                nmi_cpu_shutdown(dummy);
 }
 
-static int nmi_create_files(struct super_block *sb, struct dentry *root)
+static int nmi_create_files(struct dentry *root)
 {
        unsigned int i;
 
                        continue;
 
                snprintf(buf,  sizeof(buf), "%d", i);
-               dir = oprofilefs_mkdir(sb, root, buf);
-               oprofilefs_create_ulong(sb, dir, "enabled", &counter_config[i].enabled);
-               oprofilefs_create_ulong(sb, dir, "event", &counter_config[i].event);
-               oprofilefs_create_ulong(sb, dir, "count", &counter_config[i].count);
-               oprofilefs_create_ulong(sb, dir, "unit_mask", &counter_config[i].unit_mask);
-               oprofilefs_create_ulong(sb, dir, "kernel", &counter_config[i].kernel);
-               oprofilefs_create_ulong(sb, dir, "user", &counter_config[i].user);
-               oprofilefs_create_ulong(sb, dir, "extra", &counter_config[i].extra);
+               dir = oprofilefs_mkdir(root->d_sb, root, buf);
+               oprofilefs_create_ulong(root->d_sb, dir, "enabled", &counter_config[i].enabled);
+               oprofilefs_create_ulong(root->d_sb, dir, "event", &counter_config[i].event);
+               oprofilefs_create_ulong(root->d_sb, dir, "count", &counter_config[i].count);
+               oprofilefs_create_ulong(root->d_sb, dir, "unit_mask", &counter_config[i].unit_mask);
+               oprofilefs_create_ulong(root->d_sb, dir, "kernel", &counter_config[i].kernel);
+               oprofilefs_create_ulong(root->d_sb, dir, "user", &counter_config[i].user);
+               oprofilefs_create_ulong(root->d_sb, dir, "extra", &counter_config[i].extra);
        }
 
        return 0;
 
        printk(KERN_INFO "oprofile: AMD IBS detected (0x%08x)\n", ibs_caps);
 }
 
-static int (*create_arch_files)(struct super_block *sb, struct dentry *root);
+static int (*create_arch_files)(struct dentry *root);
 
-static int setup_ibs_files(struct super_block *sb, struct dentry *root)
+static int setup_ibs_files(struct dentry *root)
 {
        struct dentry *dir;
        int ret = 0;
 
        /* architecture specific files */
        if (create_arch_files)
-               ret = create_arch_files(sb, root);
+               ret = create_arch_files(root);
 
        if (ret)
                return ret;
        ibs_config.max_cnt_op = 250000;
 
        if (ibs_caps & IBS_CAPS_FETCHSAM) {
-               dir = oprofilefs_mkdir(sb, root, "ibs_fetch");
-               oprofilefs_create_ulong(sb, dir, "enable",
+               dir = oprofilefs_mkdir(root->d_sb, root, "ibs_fetch");
+               oprofilefs_create_ulong(root->d_sb, dir, "enable",
                                        &ibs_config.fetch_enabled);
-               oprofilefs_create_ulong(sb, dir, "max_count",
+               oprofilefs_create_ulong(root->d_sb, dir, "max_count",
                                        &ibs_config.max_cnt_fetch);
-               oprofilefs_create_ulong(sb, dir, "rand_enable",
+               oprofilefs_create_ulong(root->d_sb, dir, "rand_enable",
                                        &ibs_config.rand_en);
        }
 
        if (ibs_caps & IBS_CAPS_OPSAM) {
-               dir = oprofilefs_mkdir(sb, root, "ibs_op");
-               oprofilefs_create_ulong(sb, dir, "enable",
+               dir = oprofilefs_mkdir(root->d_sb, root, "ibs_op");
+               oprofilefs_create_ulong(root->d_sb, dir, "enable",
                                        &ibs_config.op_enabled);
-               oprofilefs_create_ulong(sb, dir, "max_count",
+               oprofilefs_create_ulong(root->d_sb, dir, "max_count",
                                        &ibs_config.max_cnt_op);
                if (ibs_caps & IBS_CAPS_OPCNT)
-                       oprofilefs_create_ulong(sb, dir, "dispatched_ops",
+                       oprofilefs_create_ulong(root->d_sb, dir, "dispatched_ops",
                                                &ibs_config.dispatched_ops);
                if (ibs_caps & IBS_CAPS_BRNTRGT)
-                       oprofilefs_create_ulong(sb, dir, "branch_target",
+                       oprofilefs_create_ulong(root->d_sb, dir, "branch_target",
                                                &ibs_config.branch_target);
        }
 
 
 #endif
        oprofile_create_stats_files(root->d_sb, root);
        if (oprofile_ops.create_files)
-               oprofile_ops.create_files(root->d_sb, root);
+               oprofile_ops.create_files(root);
 }
 
                        op_destroy_counter(cpu, event);
 }
 
-static int oprofile_perf_create_files(struct super_block *sb, struct dentry *root)
+static int oprofile_perf_create_files(struct dentry *root)
 {
        unsigned int i;
 
                char buf[4];
 
                snprintf(buf, sizeof buf, "%d", i);
-               dir = oprofilefs_mkdir(sb, root, buf);
-               oprofilefs_create_ulong(sb, dir, "enabled", &counter_config[i].enabled);
-               oprofilefs_create_ulong(sb, dir, "event", &counter_config[i].event);
-               oprofilefs_create_ulong(sb, dir, "count", &counter_config[i].count);
-               oprofilefs_create_ulong(sb, dir, "unit_mask", &counter_config[i].unit_mask);
-               oprofilefs_create_ulong(sb, dir, "kernel", &counter_config[i].kernel);
-               oprofilefs_create_ulong(sb, dir, "user", &counter_config[i].user);
+               dir = oprofilefs_mkdir(root->d_sb, root, buf);
+               oprofilefs_create_ulong(root->d_sb, dir, "enabled", &counter_config[i].enabled);
+               oprofilefs_create_ulong(root->d_sb, dir, "event", &counter_config[i].event);
+               oprofilefs_create_ulong(root->d_sb, dir, "count", &counter_config[i].count);
+               oprofilefs_create_ulong(root->d_sb, dir, "unit_mask", &counter_config[i].unit_mask);
+               oprofilefs_create_ulong(root->d_sb, dir, "kernel", &counter_config[i].kernel);
+               oprofilefs_create_ulong(root->d_sb, dir, "user", &counter_config[i].user);
        }
 
        return 0;
 
 struct oprofile_operations {
        /* create any necessary configuration files in the oprofile fs.
         * Optional. */
-       int (*create_files)(struct super_block * sb, struct dentry * root);
+       int (*create_files)(struct dentry * root);
        /* Do any necessary interrupt setup. Optional. */
        int (*setup)(void);
        /* Do any necessary interrupt shutdown. Optional. */