oprofilefs_mkdir() doesn't need superblock argument

it's always equal to ->d_sb of the second argument (parent dentry),
due to either being literally that, or ->d_sb of parent's parent.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
diff --git a/arch/alpha/oprofile/common.c b/arch/alpha/oprofile/common.c
index d79bf68..a44608b 100644
--- a/arch/alpha/oprofile/common.c
+++ b/arch/alpha/oprofile/common.c
@@ -115,7 +115,7 @@
 		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);
diff --git a/arch/avr32/oprofile/op_model_avr32.c b/arch/avr32/oprofile/op_model_avr32.c
index 80a0615..7d920a4 100644
--- a/arch/avr32/oprofile/op_model_avr32.c
+++ b/arch/avr32/oprofile/op_model_avr32.c
@@ -105,7 +105,7 @@
 
 	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);
diff --git a/arch/mips/oprofile/common.c b/arch/mips/oprofile/common.c
index 7439ae2..755caf0 100644
--- a/arch/mips/oprofile/common.c
+++ b/arch/mips/oprofile/common.c
@@ -42,7 +42,7 @@
 		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);
diff --git a/arch/powerpc/oprofile/common.c b/arch/powerpc/oprofile/common.c
index addc623..60a286b 100644
--- a/arch/powerpc/oprofile/common.c
+++ b/arch/powerpc/oprofile/common.c
@@ -160,7 +160,7 @@
 		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);
diff --git a/arch/s390/oprofile/init.c b/arch/s390/oprofile/init.c
index 712d57b..5ae06db 100644
--- a/arch/s390/oprofile/init.c
+++ b/arch/s390/oprofile/init.c
@@ -350,7 +350,7 @@
 {
 	struct dentry *dir;
 
-	dir = oprofilefs_mkdir(root->d_sb, root, "timer");
+	dir = oprofilefs_mkdir(root, "timer");
 	if (!dir)
 		return -EINVAL;
 
@@ -375,7 +375,7 @@
 		 * and can only be set to 0.
 		 */
 
-		dir = oprofilefs_mkdir(root->d_sb, root, "0");
+		dir = oprofilefs_mkdir(root, "0");
 		if (!dir)
 			return -EINVAL;
 
@@ -395,7 +395,7 @@
 		 * 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;
 
diff --git a/arch/x86/oprofile/nmi_int.c b/arch/x86/oprofile/nmi_int.c
index 483f02b..8bb2de6 100644
--- a/arch/x86/oprofile/nmi_int.c
+++ b/arch/x86/oprofile/nmi_int.c
@@ -420,7 +420,7 @@
 			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);
diff --git a/arch/x86/oprofile/op_model_amd.c b/arch/x86/oprofile/op_model_amd.c
index 34e16c2..99131435 100644
--- a/arch/x86/oprofile/op_model_amd.c
+++ b/arch/x86/oprofile/op_model_amd.c
@@ -479,7 +479,7 @@
 	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",
@@ -489,7 +489,7 @@
 	}
 
 	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",
diff --git a/drivers/oprofile/oprofile_perf.c b/drivers/oprofile/oprofile_perf.c
index 52ad942..923a245 100644
--- a/drivers/oprofile/oprofile_perf.c
+++ b/drivers/oprofile/oprofile_perf.c
@@ -147,7 +147,7 @@
 		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);
diff --git a/drivers/oprofile/oprofile_stats.c b/drivers/oprofile/oprofile_stats.c
index 627dce4..8cf2fa9 100644
--- a/drivers/oprofile/oprofile_stats.c
+++ b/drivers/oprofile/oprofile_stats.c
@@ -46,14 +46,14 @@
 	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
diff --git a/drivers/oprofile/oprofilefs.c b/drivers/oprofile/oprofilefs.c
index 2e2dd5c..6a34572 100644
--- a/drivers/oprofile/oprofilefs.c
+++ b/drivers/oprofile/oprofilefs.c
@@ -211,28 +211,27 @@
 }
 
 
-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;
 }
 
diff --git a/include/linux/oprofile.h b/include/linux/oprofile.h
index 8a906b4..957877e 100644
--- a/include/linux/oprofile.h
+++ b/include/linux/oprofile.h
@@ -144,8 +144,7 @@
 	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