char buf[4];
 
                snprintf(buf, sizeof buf, "%d", i);
-               dir = oprofilefs_mkdir(root->d_sb, root, buf);
+               dir = oprofilefs_mkdir(root, buf);
 
                oprofilefs_create_ulong(root->d_sb, dir, "enabled", &ctr[i].enabled);
                 oprofilefs_create_ulong(root->d_sb, dir, "event", &ctr[i].event);
 
 
        for (i = 0; i < NR_counter; i++) {
                snprintf(filename, sizeof(filename), "%u", i);
-               dir = oprofilefs_mkdir(root->d_sb, root, filename);
+               dir = oprofilefs_mkdir(root, filename);
 
                oprofilefs_create_ulong(root->d_sb, dir, "enabled",
                                &counter[i].enabled);
 
                char buf[4];
 
                snprintf(buf, sizeof buf, "%d", i);
-               dir = oprofilefs_mkdir(root->d_sb, root, buf);
+               dir = oprofilefs_mkdir(root, buf);
 
                oprofilefs_create_ulong(root->d_sb, dir, "enabled", &ctr[i].enabled);
                oprofilefs_create_ulong(root->d_sb, dir, "event", &ctr[i].event);
 
                char buf[4];
 
                snprintf(buf, sizeof buf, "%d", i);
-               dir = oprofilefs_mkdir(root->d_sb, root, buf);
+               dir = oprofilefs_mkdir(root, buf);
 
                oprofilefs_create_ulong(root->d_sb, dir, "enabled", &ctr[i].enabled);
                oprofilefs_create_ulong(root->d_sb, dir, "event", &ctr[i].event);
 
 {
        struct dentry *dir;
 
-       dir = oprofilefs_mkdir(root->d_sb, root, "timer");
+       dir = oprofilefs_mkdir(root, "timer");
        if (!dir)
                return -EINVAL;
 
                 * and can only be set to 0.
                 */
 
-               dir = oprofilefs_mkdir(root->d_sb, root, "0");
+               dir = oprofilefs_mkdir(root, "0");
                if (!dir)
                        return -EINVAL;
 
                 * space tools.  The /dev/oprofile/hwsampling fs is
                 * provided in that case.
                 */
-               dir = oprofilefs_mkdir(root->d_sb, root, "hwsampling");
+               dir = oprofilefs_mkdir(root, "hwsampling");
                if (!dir)
                        return -EINVAL;
 
 
                        continue;
 
                snprintf(buf,  sizeof(buf), "%d", i);
-               dir = oprofilefs_mkdir(root->d_sb, root, buf);
+               dir = oprofilefs_mkdir(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);
 
        ibs_config.max_cnt_op = 250000;
 
        if (ibs_caps & IBS_CAPS_FETCHSAM) {
-               dir = oprofilefs_mkdir(root->d_sb, root, "ibs_fetch");
+               dir = oprofilefs_mkdir(root, "ibs_fetch");
                oprofilefs_create_ulong(root->d_sb, dir, "enable",
                                        &ibs_config.fetch_enabled);
                oprofilefs_create_ulong(root->d_sb, dir, "max_count",
        }
 
        if (ibs_caps & IBS_CAPS_OPSAM) {
-               dir = oprofilefs_mkdir(root->d_sb, root, "ibs_op");
+               dir = oprofilefs_mkdir(root, "ibs_op");
                oprofilefs_create_ulong(root->d_sb, dir, "enable",
                                        &ibs_config.op_enabled);
                oprofilefs_create_ulong(root->d_sb, dir, "max_count",
 
                char buf[4];
 
                snprintf(buf, sizeof buf, "%d", i);
-               dir = oprofilefs_mkdir(root->d_sb, root, buf);
+               dir = oprofilefs_mkdir(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);
 
        char buf[10];
        int i;
 
-       dir = oprofilefs_mkdir(root->d_sb, root, "stats");
+       dir = oprofilefs_mkdir(root, "stats");
        if (!dir)
                return;
 
        for_each_possible_cpu(i) {
                cpu_buf = &per_cpu(op_cpu_buffer, i);
                snprintf(buf, 10, "cpu%d", i);
-               cpudir = oprofilefs_mkdir(root->d_sb, dir, buf);
+               cpudir = oprofilefs_mkdir(dir, buf);
 
                /* Strictly speaking access to these ulongs is racy,
                 * but we can't simply lock them, and they are
 
 }
 
 
-struct dentry *oprofilefs_mkdir(struct super_block *sb,
-       struct dentry *root, char const *name)
+struct dentry *oprofilefs_mkdir(struct dentry *parent, char const *name)
 {
        struct dentry *dentry;
        struct inode *inode;
 
-       mutex_lock(&root->d_inode->i_mutex);
-       dentry = d_alloc_name(root, name);
+       mutex_lock(&parent->d_inode->i_mutex);
+       dentry = d_alloc_name(parent, name);
        if (!dentry) {
-               mutex_unlock(&root->d_inode->i_mutex);
+               mutex_unlock(&parent->d_inode->i_mutex);
                return NULL;
        }
-       inode = oprofilefs_get_inode(sb, S_IFDIR | 0755);
+       inode = oprofilefs_get_inode(parent->d_sb, S_IFDIR | 0755);
        if (!inode) {
                dput(dentry);
-               mutex_unlock(&root->d_inode->i_mutex);
+               mutex_unlock(&parent->d_inode->i_mutex);
                return NULL;
        }
        inode->i_op = &simple_dir_inode_operations;
        inode->i_fop = &simple_dir_operations;
        d_add(dentry, inode);
-       mutex_unlock(&root->d_inode->i_mutex);
+       mutex_unlock(&parent->d_inode->i_mutex);
        return dentry;
 }
 
 
        char const * name, atomic_t * val);
  
 /** create a directory */
-struct dentry * oprofilefs_mkdir(struct super_block * sb, struct dentry * root,
-       char const * name);
+struct dentry *oprofilefs_mkdir(struct dentry *parent, char const *name);
 
 /**
  * Write the given asciz string to the given user buffer @buf, updating *offset