From 5d30b4274f1f3315f48ad4b2a9a41abc94d11d16 Mon Sep 17 00:00:00 2001 From: Al Viro Date: Tue, 16 Jul 2013 17:58:45 +0400 Subject: coh901318: don't open-code simple_read_from_buffer() ... and BTW, failing copy_to_user() means EFAULT, not EINVAL Signed-off-by: Al Viro --- drivers/dma/coh901318.c | 26 +++++--------------------- 1 file changed, 5 insertions(+), 21 deletions(-) (limited to 'drivers') diff --git a/drivers/dma/coh901318.c b/drivers/dma/coh901318.c index 9bfaddd57ef1..31011d2a26fc 100644 --- a/drivers/dma/coh901318.c +++ b/drivers/dma/coh901318.c @@ -1339,15 +1339,14 @@ static int coh901318_debugfs_read(struct file *file, char __user *buf, { u64 started_channels = debugfs_dma_base->pm.started_channels; int pool_count = debugfs_dma_base->pool.debugfs_pool_counter; - int i; - int ret = 0; char *dev_buf; char *tmp; - int dev_size; + int ret; + int i; dev_buf = kmalloc(4*1024, GFP_KERNEL); if (dev_buf == NULL) - goto err_kmalloc; + return -ENOMEM; tmp = dev_buf; tmp += sprintf(tmp, "DMA -- enabled dma channels\n"); @@ -1357,26 +1356,11 @@ static int coh901318_debugfs_read(struct file *file, char __user *buf, tmp += sprintf(tmp, "channel %d\n", i); tmp += sprintf(tmp, "Pool alloc nbr %d\n", pool_count); - dev_size = tmp - dev_buf; - - /* No more to read if offset != 0 */ - if (*f_pos > dev_size) - goto out; - if (count > dev_size - *f_pos) - count = dev_size - *f_pos; - - if (copy_to_user(buf, dev_buf + *f_pos, count)) - ret = -EINVAL; - ret = count; - *f_pos += count; - - out: + ret = simple_read_from_buffer(buf, count, f_pos, dev_buf, + tmp - dev_buf); kfree(dev_buf); return ret; - - err_kmalloc: - return 0; } static const struct file_operations coh901318_debugfs_status_operations = { -- cgit v1.2.3 From a9e599e558da15e092cd55a743d57d83daaac0b2 Mon Sep 17 00:00:00 2001 From: Al Viro Date: Fri, 19 Jul 2013 15:47:29 +0400 Subject: don't bother passing sb to oprofile_create_files() it's always root->d_sb Signed-off-by: Al Viro --- drivers/oprofile/oprof.h | 2 +- drivers/oprofile/oprofile_files.c | 26 +++++++++++++------------- drivers/oprofile/oprofilefs.c | 2 +- 3 files changed, 15 insertions(+), 15 deletions(-) (limited to 'drivers') diff --git a/drivers/oprofile/oprof.h b/drivers/oprofile/oprof.h index d32ef816337c..8c43f20ab5fa 100644 --- a/drivers/oprofile/oprof.h +++ b/drivers/oprofile/oprof.h @@ -33,7 +33,7 @@ extern unsigned long oprofile_backtrace_depth; struct super_block; struct dentry; -void oprofile_create_files(struct super_block *sb, struct dentry *root); +void oprofile_create_files(struct dentry *root); int oprofile_timer_init(struct oprofile_operations *ops); #ifdef CONFIG_OPROFILE_NMI_TIMER int op_nmi_timer_init(struct oprofile_operations *ops); diff --git a/drivers/oprofile/oprofile_files.c b/drivers/oprofile/oprofile_files.c index 84a208dbed93..97c345ff62c4 100644 --- a/drivers/oprofile/oprofile_files.c +++ b/drivers/oprofile/oprofile_files.c @@ -175,7 +175,7 @@ static const struct file_operations dump_fops = { .llseek = noop_llseek, }; -void oprofile_create_files(struct super_block *sb, struct dentry *root) +void oprofile_create_files(struct dentry *root) { /* reinitialize default values */ oprofile_buffer_size = BUFFER_SIZE_DEFAULT; @@ -183,19 +183,19 @@ void oprofile_create_files(struct super_block *sb, struct dentry *root) oprofile_buffer_watershed = BUFFER_WATERSHED_DEFAULT; oprofile_time_slice = msecs_to_jiffies(TIME_SLICE_DEFAULT); - oprofilefs_create_file(sb, root, "enable", &enable_fops); - oprofilefs_create_file_perm(sb, root, "dump", &dump_fops, 0666); - oprofilefs_create_file(sb, root, "buffer", &event_buffer_fops); - oprofilefs_create_ulong(sb, root, "buffer_size", &oprofile_buffer_size); - oprofilefs_create_ulong(sb, root, "buffer_watershed", &oprofile_buffer_watershed); - oprofilefs_create_ulong(sb, root, "cpu_buffer_size", &oprofile_cpu_buffer_size); - oprofilefs_create_file(sb, root, "cpu_type", &cpu_type_fops); - oprofilefs_create_file(sb, root, "backtrace_depth", &depth_fops); - oprofilefs_create_file(sb, root, "pointer_size", &pointer_size_fops); + oprofilefs_create_file(root->d_sb, root, "enable", &enable_fops); + oprofilefs_create_file_perm(root->d_sb, root, "dump", &dump_fops, 0666); + oprofilefs_create_file(root->d_sb, root, "buffer", &event_buffer_fops); + oprofilefs_create_ulong(root->d_sb, root, "buffer_size", &oprofile_buffer_size); + oprofilefs_create_ulong(root->d_sb, root, "buffer_watershed", &oprofile_buffer_watershed); + oprofilefs_create_ulong(root->d_sb, root, "cpu_buffer_size", &oprofile_cpu_buffer_size); + oprofilefs_create_file(root->d_sb, root, "cpu_type", &cpu_type_fops); + oprofilefs_create_file(root->d_sb, root, "backtrace_depth", &depth_fops); + oprofilefs_create_file(root->d_sb, root, "pointer_size", &pointer_size_fops); #ifdef CONFIG_OPROFILE_EVENT_MULTIPLEX - oprofilefs_create_file(sb, root, "time_slice", &timeout_fops); + oprofilefs_create_file(root->d_sb, root, "time_slice", &timeout_fops); #endif - oprofile_create_stats_files(sb, root); + oprofile_create_stats_files(root->d_sb, root); if (oprofile_ops.create_files) - oprofile_ops.create_files(sb, root); + oprofile_ops.create_files(root->d_sb, root); } diff --git a/drivers/oprofile/oprofilefs.c b/drivers/oprofile/oprofilefs.c index 7c12d9c2b230..2e2dd5ca7211 100644 --- a/drivers/oprofile/oprofilefs.c +++ b/drivers/oprofile/oprofilefs.c @@ -256,7 +256,7 @@ static int oprofilefs_fill_super(struct super_block *sb, void *data, int silent) if (!sb->s_root) return -ENOMEM; - oprofile_create_files(sb, sb->s_root); + oprofile_create_files(sb->s_root); // FIXME: verify kill_litter_super removes our dentries return 0; -- cgit v1.2.3 From ef7bca1456e7f65e66b9466c3b149601fe32eec0 Mon Sep 17 00:00:00 2001 From: Al Viro Date: Fri, 19 Jul 2013 15:52:42 +0400 Subject: oprofile: don't bother with passing superblock to ->create_files() Signed-off-by: Al Viro --- arch/alpha/oprofile/common.c | 22 +++++++++++----------- arch/avr32/oprofile/op_model_avr32.c | 17 ++++++++--------- arch/mips/oprofile/common.c | 20 ++++++++++---------- arch/powerpc/oprofile/common.c | 28 ++++++++++++++-------------- arch/s390/oprofile/init.c | 35 +++++++++++++++++------------------ arch/x86/oprofile/nmi_int.c | 18 +++++++++--------- arch/x86/oprofile/op_model_amd.c | 24 ++++++++++++------------ drivers/oprofile/oprofile_files.c | 2 +- drivers/oprofile/oprofile_perf.c | 16 ++++++++-------- include/linux/oprofile.h | 2 +- 10 files changed, 91 insertions(+), 93 deletions(-) (limited to 'drivers') diff --git a/arch/alpha/oprofile/common.c b/arch/alpha/oprofile/common.c index b8ce18f485d3..d79bf68caee2 100644 --- a/arch/alpha/oprofile/common.c +++ b/arch/alpha/oprofile/common.c @@ -106,7 +106,7 @@ op_axp_stop(void) } static int -op_axp_create_files(struct super_block *sb, struct dentry *root) +op_axp_create_files(struct dentry *root) { int i; @@ -115,23 +115,23 @@ op_axp_create_files(struct super_block *sb, struct dentry *root) 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); } diff --git a/arch/avr32/oprofile/op_model_avr32.c b/arch/avr32/oprofile/op_model_avr32.c index f74b7809e089..80a06158da82 100644 --- a/arch/avr32/oprofile/op_model_avr32.c +++ b/arch/avr32/oprofile/op_model_avr32.c @@ -97,8 +97,7 @@ static irqreturn_t avr32_perf_counter_interrupt(int irq, void *dev_id) 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; @@ -106,21 +105,21 @@ static int avr32_perf_counter_create_files(struct super_block *sb, 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); } diff --git a/arch/mips/oprofile/common.c b/arch/mips/oprofile/common.c index af763e838fdd..7439ae2df05c 100644 --- a/arch/mips/oprofile/common.c +++ b/arch/mips/oprofile/common.c @@ -33,7 +33,7 @@ static int op_mips_setup(void) 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; @@ -42,16 +42,16 @@ static int op_mips_create_files(struct super_block *sb, struct dentry *root) 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; diff --git a/arch/powerpc/oprofile/common.c b/arch/powerpc/oprofile/common.c index 4f51025f5b00..addc62317f45 100644 --- a/arch/powerpc/oprofile/common.c +++ b/arch/powerpc/oprofile/common.c @@ -119,7 +119,7 @@ static void op_powerpc_stop(void) 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; @@ -128,9 +128,9 @@ static int op_powerpc_create_files(struct super_block *sb, struct dentry *root) * 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 @@ -142,7 +142,7 @@ static int op_powerpc_create_files(struct super_block *sb, struct dentry *root) * 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 @@ -160,11 +160,11 @@ static int op_powerpc_create_files(struct super_block *sb, struct dentry *root) 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 @@ -173,14 +173,14 @@ static int op_powerpc_create_files(struct super_block *sb, struct dentry *root) * 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; diff --git a/arch/s390/oprofile/init.c b/arch/s390/oprofile/init.c index 930783d2c99b..712d57bb783a 100644 --- a/arch/s390/oprofile/init.c +++ b/arch/s390/oprofile/init.c @@ -346,16 +346,15 @@ static const struct file_operations timer_enabled_fops = { }; -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; @@ -376,17 +375,17 @@ static int oprofile_create_hwsampling_files(struct super_block *sb, * 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 { @@ -396,19 +395,19 @@ static int oprofile_create_hwsampling_files(struct super_block *sb, * 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; diff --git a/arch/x86/oprofile/nmi_int.c b/arch/x86/oprofile/nmi_int.c index 48768df2471a..483f02b8c1a8 100644 --- a/arch/x86/oprofile/nmi_int.c +++ b/arch/x86/oprofile/nmi_int.c @@ -403,7 +403,7 @@ static void nmi_cpu_down(void *dummy) 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; @@ -420,14 +420,14 @@ static int nmi_create_files(struct super_block *sb, struct dentry *root) 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; diff --git a/arch/x86/oprofile/op_model_amd.c b/arch/x86/oprofile/op_model_amd.c index b2b94438ff05..34e16c2fe357 100644 --- a/arch/x86/oprofile/op_model_amd.c +++ b/arch/x86/oprofile/op_model_amd.c @@ -454,16 +454,16 @@ static void init_ibs(void) 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; @@ -479,26 +479,26 @@ static int setup_ibs_files(struct super_block *sb, struct dentry *root) 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); } diff --git a/drivers/oprofile/oprofile_files.c b/drivers/oprofile/oprofile_files.c index 97c345ff62c4..ffc30ee641d4 100644 --- a/drivers/oprofile/oprofile_files.c +++ b/drivers/oprofile/oprofile_files.c @@ -197,5 +197,5 @@ void oprofile_create_files(struct dentry *root) #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); } diff --git a/drivers/oprofile/oprofile_perf.c b/drivers/oprofile/oprofile_perf.c index f3cfa0b9adfa..52ad942df04e 100644 --- a/drivers/oprofile/oprofile_perf.c +++ b/drivers/oprofile/oprofile_perf.c @@ -138,7 +138,7 @@ static void op_perf_stop(void) 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; @@ -147,13 +147,13 @@ static int oprofile_perf_create_files(struct super_block *sb, struct dentry *roo 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; diff --git a/include/linux/oprofile.h b/include/linux/oprofile.h index a4c562453f6b..8a906b4034a7 100644 --- a/include/linux/oprofile.h +++ b/include/linux/oprofile.h @@ -51,7 +51,7 @@ struct pt_regs; 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. */ -- cgit v1.2.3 From 40437c718a69562bafaf9e5c9d17b6628e2576b1 Mon Sep 17 00:00:00 2001 From: Al Viro Date: Fri, 19 Jul 2013 15:54:56 +0400 Subject: don't bother with passing superblock to oprofile_create_stats_files() Signed-off-by: Al Viro --- drivers/oprofile/oprofile_files.c | 2 +- drivers/oprofile/oprofile_stats.c | 24 ++++++++++++------------ drivers/oprofile/oprofile_stats.h | 2 +- 3 files changed, 14 insertions(+), 14 deletions(-) (limited to 'drivers') diff --git a/drivers/oprofile/oprofile_files.c b/drivers/oprofile/oprofile_files.c index ffc30ee641d4..07462a9af615 100644 --- a/drivers/oprofile/oprofile_files.c +++ b/drivers/oprofile/oprofile_files.c @@ -195,7 +195,7 @@ void oprofile_create_files(struct dentry *root) #ifdef CONFIG_OPROFILE_EVENT_MULTIPLEX oprofilefs_create_file(root->d_sb, root, "time_slice", &timeout_fops); #endif - oprofile_create_stats_files(root->d_sb, root); + oprofile_create_stats_files(root); if (oprofile_ops.create_files) oprofile_ops.create_files(root); } diff --git a/drivers/oprofile/oprofile_stats.c b/drivers/oprofile/oprofile_stats.c index 917d28ebeacd..627dce478311 100644 --- a/drivers/oprofile/oprofile_stats.c +++ b/drivers/oprofile/oprofile_stats.c @@ -38,7 +38,7 @@ void oprofile_reset_stats(void) } -void oprofile_create_stats_files(struct super_block *sb, struct dentry *root) +void oprofile_create_stats_files(struct dentry *root) { struct oprofile_cpu_buffer *cpu_buf; struct dentry *cpudir; @@ -46,39 +46,39 @@ void oprofile_create_stats_files(struct super_block *sb, struct dentry *root) char buf[10]; int i; - dir = oprofilefs_mkdir(sb, root, "stats"); + dir = oprofilefs_mkdir(root->d_sb, 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(sb, dir, buf); + cpudir = oprofilefs_mkdir(root->d_sb, dir, buf); /* Strictly speaking access to these ulongs is racy, * but we can't simply lock them, and they are * informational only. */ - oprofilefs_create_ro_ulong(sb, cpudir, "sample_received", + oprofilefs_create_ro_ulong(root->d_sb, cpudir, "sample_received", &cpu_buf->sample_received); - oprofilefs_create_ro_ulong(sb, cpudir, "sample_lost_overflow", + oprofilefs_create_ro_ulong(root->d_sb, cpudir, "sample_lost_overflow", &cpu_buf->sample_lost_overflow); - oprofilefs_create_ro_ulong(sb, cpudir, "backtrace_aborted", + oprofilefs_create_ro_ulong(root->d_sb, cpudir, "backtrace_aborted", &cpu_buf->backtrace_aborted); - oprofilefs_create_ro_ulong(sb, cpudir, "sample_invalid_eip", + oprofilefs_create_ro_ulong(root->d_sb, cpudir, "sample_invalid_eip", &cpu_buf->sample_invalid_eip); } - oprofilefs_create_ro_atomic(sb, dir, "sample_lost_no_mm", + oprofilefs_create_ro_atomic(root->d_sb, dir, "sample_lost_no_mm", &oprofile_stats.sample_lost_no_mm); - oprofilefs_create_ro_atomic(sb, dir, "sample_lost_no_mapping", + oprofilefs_create_ro_atomic(root->d_sb, dir, "sample_lost_no_mapping", &oprofile_stats.sample_lost_no_mapping); - oprofilefs_create_ro_atomic(sb, dir, "event_lost_overflow", + oprofilefs_create_ro_atomic(root->d_sb, dir, "event_lost_overflow", &oprofile_stats.event_lost_overflow); - oprofilefs_create_ro_atomic(sb, dir, "bt_lost_no_mapping", + oprofilefs_create_ro_atomic(root->d_sb, dir, "bt_lost_no_mapping", &oprofile_stats.bt_lost_no_mapping); #ifdef CONFIG_OPROFILE_EVENT_MULTIPLEX - oprofilefs_create_ro_atomic(sb, dir, "multiplex_counter", + oprofilefs_create_ro_atomic(root->d_sb, dir, "multiplex_counter", &oprofile_stats.multiplex_counter); #endif } diff --git a/drivers/oprofile/oprofile_stats.h b/drivers/oprofile/oprofile_stats.h index 38b6fc028984..13e8e3f1e356 100644 --- a/drivers/oprofile/oprofile_stats.h +++ b/drivers/oprofile/oprofile_stats.h @@ -29,6 +29,6 @@ struct super_block; struct dentry; /* create the stats/ dir */ -void oprofile_create_stats_files(struct super_block *sb, struct dentry *root); +void oprofile_create_stats_files(struct dentry *root); #endif /* OPROFILE_STATS_H */ -- cgit v1.2.3 From ecde28237e10de3750a97579f42bc2ec65b8a0e1 Mon Sep 17 00:00:00 2001 From: Al Viro Date: Fri, 19 Jul 2013 15:58:27 +0400 Subject: 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 --- arch/alpha/oprofile/common.c | 2 +- arch/avr32/oprofile/op_model_avr32.c | 2 +- arch/mips/oprofile/common.c | 2 +- arch/powerpc/oprofile/common.c | 2 +- arch/s390/oprofile/init.c | 6 +++--- arch/x86/oprofile/nmi_int.c | 2 +- arch/x86/oprofile/op_model_amd.c | 4 ++-- drivers/oprofile/oprofile_perf.c | 2 +- drivers/oprofile/oprofile_stats.c | 4 ++-- drivers/oprofile/oprofilefs.c | 15 +++++++-------- include/linux/oprofile.h | 3 +-- 11 files changed, 21 insertions(+), 23 deletions(-) (limited to 'drivers') diff --git a/arch/alpha/oprofile/common.c b/arch/alpha/oprofile/common.c index d79bf68caee2..a44608b697ac 100644 --- a/arch/alpha/oprofile/common.c +++ b/arch/alpha/oprofile/common.c @@ -115,7 +115,7 @@ op_axp_create_files(struct dentry *root) 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 80a06158da82..7d920a41b441 100644 --- a/arch/avr32/oprofile/op_model_avr32.c +++ b/arch/avr32/oprofile/op_model_avr32.c @@ -105,7 +105,7 @@ static int avr32_perf_counter_create_files(struct dentry *root) 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 7439ae2df05c..755caf04656e 100644 --- a/arch/mips/oprofile/common.c +++ b/arch/mips/oprofile/common.c @@ -42,7 +42,7 @@ static int op_mips_create_files(struct dentry *root) 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 addc62317f45..60a286b367fc 100644 --- a/arch/powerpc/oprofile/common.c +++ b/arch/powerpc/oprofile/common.c @@ -160,7 +160,7 @@ static int op_powerpc_create_files(struct dentry *root) 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 712d57bb783a..5ae06db7ec58 100644 --- a/arch/s390/oprofile/init.c +++ b/arch/s390/oprofile/init.c @@ -350,7 +350,7 @@ static int oprofile_create_hwsampling_files(struct dentry *root) { struct dentry *dir; - dir = oprofilefs_mkdir(root->d_sb, root, "timer"); + dir = oprofilefs_mkdir(root, "timer"); if (!dir) return -EINVAL; @@ -375,7 +375,7 @@ static int oprofile_create_hwsampling_files(struct dentry *root) * 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 @@ static int oprofile_create_hwsampling_files(struct dentry *root) * 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 483f02b8c1a8..8bb2de6e103c 100644 --- a/arch/x86/oprofile/nmi_int.c +++ b/arch/x86/oprofile/nmi_int.c @@ -420,7 +420,7 @@ static int nmi_create_files(struct dentry *root) 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 34e16c2fe357..99131435ea32 100644 --- a/arch/x86/oprofile/op_model_amd.c +++ b/arch/x86/oprofile/op_model_amd.c @@ -479,7 +479,7 @@ static int setup_ibs_files(struct dentry *root) 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 @@ static int setup_ibs_files(struct dentry *root) } 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 52ad942df04e..923a245774fa 100644 --- a/drivers/oprofile/oprofile_perf.c +++ b/drivers/oprofile/oprofile_perf.c @@ -147,7 +147,7 @@ static int oprofile_perf_create_files(struct dentry *root) 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 627dce478311..8cf2fa9710a4 100644 --- a/drivers/oprofile/oprofile_stats.c +++ b/drivers/oprofile/oprofile_stats.c @@ -46,14 +46,14 @@ void oprofile_create_stats_files(struct dentry *root) 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 2e2dd5ca7211..6a345724637f 100644 --- a/drivers/oprofile/oprofilefs.c +++ b/drivers/oprofile/oprofilefs.c @@ -211,28 +211,27 @@ int oprofilefs_create_file_perm(struct super_block *sb, struct dentry *root, } -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 8a906b4034a7..957877e7a408 100644 --- a/include/linux/oprofile.h +++ b/include/linux/oprofile.h @@ -144,8 +144,7 @@ int oprofilefs_create_ro_atomic(struct super_block * sb, struct dentry * root, 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 -- cgit v1.2.3 From 6af4ea0ba708172be8caf1ba5047b2b8a9d2fea3 Mon Sep 17 00:00:00 2001 From: Al Viro Date: Fri, 19 Jul 2013 16:10:36 +0400 Subject: oprofilefs_create_...() do not need superblock argument same story as with oprofilefs_mkdir() Signed-off-by: Al Viro --- arch/alpha/oprofile/common.c | 18 +++++++++--------- arch/avr32/oprofile/op_model_avr32.c | 12 ++++++------ arch/mips/oprofile/common.c | 14 +++++++------- arch/powerpc/oprofile/common.c | 24 ++++++++++++------------ arch/s390/oprofile/init.c | 26 +++++++++++++------------- arch/x86/oprofile/nmi_int.c | 14 +++++++------- arch/x86/oprofile/op_model_amd.c | 14 +++++++------- drivers/oprofile/oprofile_files.c | 20 ++++++++++---------- drivers/oprofile/oprofile_perf.c | 12 ++++++------ drivers/oprofile/oprofile_stats.c | 18 +++++++++--------- drivers/oprofile/oprofilefs.c | 27 +++++++++++++-------------- include/linux/oprofile.h | 10 +++++----- 12 files changed, 104 insertions(+), 105 deletions(-) (limited to 'drivers') diff --git a/arch/alpha/oprofile/common.c b/arch/alpha/oprofile/common.c index a44608b697ac..310a4ce1dccc 100644 --- a/arch/alpha/oprofile/common.c +++ b/arch/alpha/oprofile/common.c @@ -117,21 +117,21 @@ op_axp_create_files(struct dentry *root) snprintf(buf, sizeof buf, "%d", i); 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); - oprofilefs_create_ulong(root->d_sb, dir, "count", &ctr[i].count); + oprofilefs_create_ulong(dir, "enabled", &ctr[i].enabled); + oprofilefs_create_ulong(dir, "event", &ctr[i].event); + oprofilefs_create_ulong(dir, "count", &ctr[i].count); /* Dummies. */ - 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); + oprofilefs_create_ulong(dir, "kernel", &ctr[i].kernel); + oprofilefs_create_ulong(dir, "user", &ctr[i].user); + oprofilefs_create_ulong(dir, "unit_mask", &ctr[i].unit_mask); } if (model->can_set_proc_mode) { - oprofilefs_create_ulong(root->d_sb, root, "enable_pal", + oprofilefs_create_ulong(root, "enable_pal", &sys.enable_pal); - oprofilefs_create_ulong(root->d_sb, root, "enable_kernel", + oprofilefs_create_ulong(root, "enable_kernel", &sys.enable_kernel); - oprofilefs_create_ulong(root->d_sb, root, "enable_user", + oprofilefs_create_ulong(root, "enable_user", &sys.enable_user); } diff --git a/arch/avr32/oprofile/op_model_avr32.c b/arch/avr32/oprofile/op_model_avr32.c index 7d920a41b441..08308be2c02c 100644 --- a/arch/avr32/oprofile/op_model_avr32.c +++ b/arch/avr32/oprofile/op_model_avr32.c @@ -107,19 +107,19 @@ static int avr32_perf_counter_create_files(struct dentry *root) snprintf(filename, sizeof(filename), "%u", i); dir = oprofilefs_mkdir(root, filename); - oprofilefs_create_ulong(root->d_sb, dir, "enabled", + oprofilefs_create_ulong(dir, "enabled", &counter[i].enabled); - oprofilefs_create_ulong(root->d_sb, dir, "event", + oprofilefs_create_ulong(dir, "event", &counter[i].event); - oprofilefs_create_ulong(root->d_sb, dir, "count", + oprofilefs_create_ulong(dir, "count", &counter[i].count); /* Dummy entries */ - oprofilefs_create_ulong(root->d_sb, dir, "kernel", + oprofilefs_create_ulong(dir, "kernel", &counter[i].kernel); - oprofilefs_create_ulong(root->d_sb, dir, "user", + oprofilefs_create_ulong(dir, "user", &counter[i].user); - oprofilefs_create_ulong(root->d_sb, dir, "unit_mask", + oprofilefs_create_ulong(dir, "unit_mask", &counter[i].unit_mask); } diff --git a/arch/mips/oprofile/common.c b/arch/mips/oprofile/common.c index 755caf04656e..5e5424753b56 100644 --- a/arch/mips/oprofile/common.c +++ b/arch/mips/oprofile/common.c @@ -44,14 +44,14 @@ static int op_mips_create_files(struct dentry *root) snprintf(buf, sizeof buf, "%d", i); 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); - 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); + oprofilefs_create_ulong(dir, "enabled", &ctr[i].enabled); + oprofilefs_create_ulong(dir, "event", &ctr[i].event); + oprofilefs_create_ulong(dir, "count", &ctr[i].count); + oprofilefs_create_ulong(dir, "kernel", &ctr[i].kernel); + oprofilefs_create_ulong(dir, "user", &ctr[i].user); + oprofilefs_create_ulong(dir, "exl", &ctr[i].exl); /* Dummy. */ - oprofilefs_create_ulong(root->d_sb, dir, "unit_mask", &ctr[i].unit_mask); + oprofilefs_create_ulong(dir, "unit_mask", &ctr[i].unit_mask); } return 0; diff --git a/arch/powerpc/oprofile/common.c b/arch/powerpc/oprofile/common.c index 60a286b367fc..c77348c5d463 100644 --- a/arch/powerpc/oprofile/common.c +++ b/arch/powerpc/oprofile/common.c @@ -128,9 +128,9 @@ static int op_powerpc_create_files(struct dentry *root) * There is one mmcr0, mmcr1 and mmcra for setting the events for * all of the counters. */ - 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); + oprofilefs_create_ulong(root, "mmcr0", &sys.mmcr0); + oprofilefs_create_ulong(root, "mmcr1", &sys.mmcr1); + oprofilefs_create_ulong(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 @@ -142,7 +142,7 @@ static int op_powerpc_create_files(struct dentry *root) * If the file does not exist, then the kernel only supports SPU * cycle profiling, PPU event and cycle profiling. */ - oprofilefs_create_ulong(root->d_sb, root, "cell_support", &sys.cell_support); + oprofilefs_create_ulong(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 @@ -162,9 +162,9 @@ static int op_powerpc_create_files(struct dentry *root) snprintf(buf, sizeof buf, "%d", i); 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); - oprofilefs_create_ulong(root->d_sb, dir, "count", &ctr[i].count); + oprofilefs_create_ulong(dir, "enabled", &ctr[i].enabled); + oprofilefs_create_ulong(dir, "event", &ctr[i].event); + oprofilefs_create_ulong(dir, "count", &ctr[i].count); /* * Classic PowerPC doesn't support per-counter @@ -173,14 +173,14 @@ static int op_powerpc_create_files(struct dentry *root) * Book-E style performance monitors, we do * support them. */ - 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(dir, "kernel", &ctr[i].kernel); + oprofilefs_create_ulong(dir, "user", &ctr[i].user); - oprofilefs_create_ulong(root->d_sb, dir, "unit_mask", &ctr[i].unit_mask); + oprofilefs_create_ulong(dir, "unit_mask", &ctr[i].unit_mask); } - oprofilefs_create_ulong(root->d_sb, root, "enable_kernel", &sys.enable_kernel); - oprofilefs_create_ulong(root->d_sb, root, "enable_user", &sys.enable_user); + oprofilefs_create_ulong(root, "enable_kernel", &sys.enable_kernel); + oprofilefs_create_ulong(root, "enable_user", &sys.enable_user); /* Default to tracing both kernel and user */ sys.enable_kernel = 1; diff --git a/arch/s390/oprofile/init.c b/arch/s390/oprofile/init.c index 5ae06db7ec58..04e1b6a85362 100644 --- a/arch/s390/oprofile/init.c +++ b/arch/s390/oprofile/init.c @@ -354,7 +354,7 @@ static int oprofile_create_hwsampling_files(struct dentry *root) if (!dir) return -EINVAL; - oprofilefs_create_file(root->d_sb, dir, "enabled", &timer_enabled_fops); + oprofilefs_create_file(dir, "enabled", &timer_enabled_fops); if (!hwsampler_available) return 0; @@ -379,13 +379,13 @@ static int oprofile_create_hwsampling_files(struct dentry *root) if (!dir) return -EINVAL; - 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", + oprofilefs_create_file(dir, "enabled", &hwsampler_fops); + oprofilefs_create_file(dir, "event", &zero_fops); + oprofilefs_create_file(dir, "count", &hw_interval_fops); + oprofilefs_create_file(dir, "unit_mask", &zero_fops); + oprofilefs_create_file(dir, "kernel", &kernel_fops); + oprofilefs_create_file(dir, "user", &user_fops); + oprofilefs_create_ulong(dir, "hw_sdbt_blocks", &oprofile_sdbt_blocks); } else { @@ -399,15 +399,15 @@ static int oprofile_create_hwsampling_files(struct dentry *root) if (!dir) return -EINVAL; - oprofilefs_create_file(root->d_sb, dir, "hwsampler", + oprofilefs_create_file(dir, "hwsampler", &hwsampler_fops); - oprofilefs_create_file(root->d_sb, dir, "hw_interval", + oprofilefs_create_file(dir, "hw_interval", &hw_interval_fops); - oprofilefs_create_ro_ulong(root->d_sb, dir, "hw_min_interval", + oprofilefs_create_ro_ulong(dir, "hw_min_interval", &oprofile_min_interval); - oprofilefs_create_ro_ulong(root->d_sb, dir, "hw_max_interval", + oprofilefs_create_ro_ulong(dir, "hw_max_interval", &oprofile_max_interval); - oprofilefs_create_ulong(root->d_sb, dir, "hw_sdbt_blocks", + oprofilefs_create_ulong(dir, "hw_sdbt_blocks", &oprofile_sdbt_blocks); } return 0; diff --git a/arch/x86/oprofile/nmi_int.c b/arch/x86/oprofile/nmi_int.c index 8bb2de6e103c..6890d8498e0b 100644 --- a/arch/x86/oprofile/nmi_int.c +++ b/arch/x86/oprofile/nmi_int.c @@ -421,13 +421,13 @@ static int nmi_create_files(struct dentry *root) snprintf(buf, sizeof(buf), "%d", i); 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); - 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); + oprofilefs_create_ulong(dir, "enabled", &counter_config[i].enabled); + oprofilefs_create_ulong(dir, "event", &counter_config[i].event); + oprofilefs_create_ulong(dir, "count", &counter_config[i].count); + oprofilefs_create_ulong(dir, "unit_mask", &counter_config[i].unit_mask); + oprofilefs_create_ulong(dir, "kernel", &counter_config[i].kernel); + oprofilefs_create_ulong(dir, "user", &counter_config[i].user); + oprofilefs_create_ulong(dir, "extra", &counter_config[i].extra); } return 0; diff --git a/arch/x86/oprofile/op_model_amd.c b/arch/x86/oprofile/op_model_amd.c index 99131435ea32..50d86c0e9ba4 100644 --- a/arch/x86/oprofile/op_model_amd.c +++ b/arch/x86/oprofile/op_model_amd.c @@ -480,25 +480,25 @@ static int setup_ibs_files(struct dentry *root) if (ibs_caps & IBS_CAPS_FETCHSAM) { dir = oprofilefs_mkdir(root, "ibs_fetch"); - oprofilefs_create_ulong(root->d_sb, dir, "enable", + oprofilefs_create_ulong(dir, "enable", &ibs_config.fetch_enabled); - oprofilefs_create_ulong(root->d_sb, dir, "max_count", + oprofilefs_create_ulong(dir, "max_count", &ibs_config.max_cnt_fetch); - oprofilefs_create_ulong(root->d_sb, dir, "rand_enable", + oprofilefs_create_ulong(dir, "rand_enable", &ibs_config.rand_en); } if (ibs_caps & IBS_CAPS_OPSAM) { dir = oprofilefs_mkdir(root, "ibs_op"); - oprofilefs_create_ulong(root->d_sb, dir, "enable", + oprofilefs_create_ulong(dir, "enable", &ibs_config.op_enabled); - oprofilefs_create_ulong(root->d_sb, dir, "max_count", + oprofilefs_create_ulong(dir, "max_count", &ibs_config.max_cnt_op); if (ibs_caps & IBS_CAPS_OPCNT) - oprofilefs_create_ulong(root->d_sb, dir, "dispatched_ops", + oprofilefs_create_ulong(dir, "dispatched_ops", &ibs_config.dispatched_ops); if (ibs_caps & IBS_CAPS_BRNTRGT) - oprofilefs_create_ulong(root->d_sb, dir, "branch_target", + oprofilefs_create_ulong(dir, "branch_target", &ibs_config.branch_target); } diff --git a/drivers/oprofile/oprofile_files.c b/drivers/oprofile/oprofile_files.c index 07462a9af615..ee2cfce358b9 100644 --- a/drivers/oprofile/oprofile_files.c +++ b/drivers/oprofile/oprofile_files.c @@ -183,17 +183,17 @@ void oprofile_create_files(struct dentry *root) oprofile_buffer_watershed = BUFFER_WATERSHED_DEFAULT; oprofile_time_slice = msecs_to_jiffies(TIME_SLICE_DEFAULT); - oprofilefs_create_file(root->d_sb, root, "enable", &enable_fops); - oprofilefs_create_file_perm(root->d_sb, root, "dump", &dump_fops, 0666); - oprofilefs_create_file(root->d_sb, root, "buffer", &event_buffer_fops); - oprofilefs_create_ulong(root->d_sb, root, "buffer_size", &oprofile_buffer_size); - oprofilefs_create_ulong(root->d_sb, root, "buffer_watershed", &oprofile_buffer_watershed); - oprofilefs_create_ulong(root->d_sb, root, "cpu_buffer_size", &oprofile_cpu_buffer_size); - oprofilefs_create_file(root->d_sb, root, "cpu_type", &cpu_type_fops); - oprofilefs_create_file(root->d_sb, root, "backtrace_depth", &depth_fops); - oprofilefs_create_file(root->d_sb, root, "pointer_size", &pointer_size_fops); + oprofilefs_create_file(root, "enable", &enable_fops); + oprofilefs_create_file_perm(root, "dump", &dump_fops, 0666); + oprofilefs_create_file(root, "buffer", &event_buffer_fops); + oprofilefs_create_ulong(root, "buffer_size", &oprofile_buffer_size); + oprofilefs_create_ulong(root, "buffer_watershed", &oprofile_buffer_watershed); + oprofilefs_create_ulong(root, "cpu_buffer_size", &oprofile_cpu_buffer_size); + oprofilefs_create_file(root, "cpu_type", &cpu_type_fops); + oprofilefs_create_file(root, "backtrace_depth", &depth_fops); + oprofilefs_create_file(root, "pointer_size", &pointer_size_fops); #ifdef CONFIG_OPROFILE_EVENT_MULTIPLEX - oprofilefs_create_file(root->d_sb, root, "time_slice", &timeout_fops); + oprofilefs_create_file(root, "time_slice", &timeout_fops); #endif oprofile_create_stats_files(root); if (oprofile_ops.create_files) diff --git a/drivers/oprofile/oprofile_perf.c b/drivers/oprofile/oprofile_perf.c index 923a245774fa..d5b2732b1b81 100644 --- a/drivers/oprofile/oprofile_perf.c +++ b/drivers/oprofile/oprofile_perf.c @@ -148,12 +148,12 @@ static int oprofile_perf_create_files(struct dentry *root) snprintf(buf, sizeof buf, "%d", i); 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); - 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(dir, "enabled", &counter_config[i].enabled); + oprofilefs_create_ulong(dir, "event", &counter_config[i].event); + oprofilefs_create_ulong(dir, "count", &counter_config[i].count); + oprofilefs_create_ulong(dir, "unit_mask", &counter_config[i].unit_mask); + oprofilefs_create_ulong(dir, "kernel", &counter_config[i].kernel); + oprofilefs_create_ulong(dir, "user", &counter_config[i].user); } return 0; diff --git a/drivers/oprofile/oprofile_stats.c b/drivers/oprofile/oprofile_stats.c index 8cf2fa9710a4..59659cea4582 100644 --- a/drivers/oprofile/oprofile_stats.c +++ b/drivers/oprofile/oprofile_stats.c @@ -59,26 +59,26 @@ void oprofile_create_stats_files(struct dentry *root) * but we can't simply lock them, and they are * informational only. */ - oprofilefs_create_ro_ulong(root->d_sb, cpudir, "sample_received", + oprofilefs_create_ro_ulong(cpudir, "sample_received", &cpu_buf->sample_received); - oprofilefs_create_ro_ulong(root->d_sb, cpudir, "sample_lost_overflow", + oprofilefs_create_ro_ulong(cpudir, "sample_lost_overflow", &cpu_buf->sample_lost_overflow); - oprofilefs_create_ro_ulong(root->d_sb, cpudir, "backtrace_aborted", + oprofilefs_create_ro_ulong(cpudir, "backtrace_aborted", &cpu_buf->backtrace_aborted); - oprofilefs_create_ro_ulong(root->d_sb, cpudir, "sample_invalid_eip", + oprofilefs_create_ro_ulong(cpudir, "sample_invalid_eip", &cpu_buf->sample_invalid_eip); } - oprofilefs_create_ro_atomic(root->d_sb, dir, "sample_lost_no_mm", + oprofilefs_create_ro_atomic(dir, "sample_lost_no_mm", &oprofile_stats.sample_lost_no_mm); - oprofilefs_create_ro_atomic(root->d_sb, dir, "sample_lost_no_mapping", + oprofilefs_create_ro_atomic(dir, "sample_lost_no_mapping", &oprofile_stats.sample_lost_no_mapping); - oprofilefs_create_ro_atomic(root->d_sb, dir, "event_lost_overflow", + oprofilefs_create_ro_atomic(dir, "event_lost_overflow", &oprofile_stats.event_lost_overflow); - oprofilefs_create_ro_atomic(root->d_sb, dir, "bt_lost_no_mapping", + oprofilefs_create_ro_atomic(dir, "bt_lost_no_mapping", &oprofile_stats.bt_lost_no_mapping); #ifdef CONFIG_OPROFILE_EVENT_MULTIPLEX - oprofilefs_create_ro_atomic(root->d_sb, dir, "multiplex_counter", + oprofilefs_create_ro_atomic(dir, "multiplex_counter", &oprofile_stats.multiplex_counter); #endif } diff --git a/drivers/oprofile/oprofilefs.c b/drivers/oprofile/oprofilefs.c index 6a345724637f..3f493459378f 100644 --- a/drivers/oprofile/oprofilefs.c +++ b/drivers/oprofile/oprofilefs.c @@ -132,9 +132,8 @@ static const struct file_operations ulong_ro_fops = { }; -static int __oprofilefs_create_file(struct super_block *sb, - struct dentry *root, char const *name, const struct file_operations *fops, - int perm, void *priv) +static int __oprofilefs_create_file(struct dentry *root, char const *name, + const struct file_operations *fops, int perm, void *priv) { struct dentry *dentry; struct inode *inode; @@ -145,7 +144,7 @@ static int __oprofilefs_create_file(struct super_block *sb, mutex_unlock(&root->d_inode->i_mutex); return -ENOMEM; } - inode = oprofilefs_get_inode(sb, S_IFREG | perm); + inode = oprofilefs_get_inode(root->d_sb, S_IFREG | perm); if (!inode) { dput(dentry); mutex_unlock(&root->d_inode->i_mutex); @@ -159,18 +158,18 @@ static int __oprofilefs_create_file(struct super_block *sb, } -int oprofilefs_create_ulong(struct super_block *sb, struct dentry *root, +int oprofilefs_create_ulong(struct dentry *root, char const *name, unsigned long *val) { - return __oprofilefs_create_file(sb, root, name, + return __oprofilefs_create_file(root, name, &ulong_fops, 0644, val); } -int oprofilefs_create_ro_ulong(struct super_block *sb, struct dentry *root, +int oprofilefs_create_ro_ulong(struct dentry *root, char const *name, unsigned long *val) { - return __oprofilefs_create_file(sb, root, name, + return __oprofilefs_create_file(root, name, &ulong_ro_fops, 0444, val); } @@ -189,25 +188,25 @@ static const struct file_operations atomic_ro_fops = { }; -int oprofilefs_create_ro_atomic(struct super_block *sb, struct dentry *root, +int oprofilefs_create_ro_atomic(struct dentry *root, char const *name, atomic_t *val) { - return __oprofilefs_create_file(sb, root, name, + return __oprofilefs_create_file(root, name, &atomic_ro_fops, 0444, val); } -int oprofilefs_create_file(struct super_block *sb, struct dentry *root, +int oprofilefs_create_file(struct dentry *root, char const *name, const struct file_operations *fops) { - return __oprofilefs_create_file(sb, root, name, fops, 0644, NULL); + return __oprofilefs_create_file(root, name, fops, 0644, NULL); } -int oprofilefs_create_file_perm(struct super_block *sb, struct dentry *root, +int oprofilefs_create_file_perm(struct dentry *root, char const *name, const struct file_operations *fops, int perm) { - return __oprofilefs_create_file(sb, root, name, fops, perm, NULL); + return __oprofilefs_create_file(root, name, fops, perm, NULL); } diff --git a/include/linux/oprofile.h b/include/linux/oprofile.h index 957877e7a408..166ef4fb4b5c 100644 --- a/include/linux/oprofile.h +++ b/include/linux/oprofile.h @@ -125,22 +125,22 @@ void oprofile_add_trace(unsigned long eip); * Create a file of the given name as a child of the given root, with * the specified file operations. */ -int oprofilefs_create_file(struct super_block * sb, struct dentry * root, +int oprofilefs_create_file(struct dentry * root, char const * name, const struct file_operations * fops); -int oprofilefs_create_file_perm(struct super_block * sb, struct dentry * root, +int oprofilefs_create_file_perm(struct dentry * root, char const * name, const struct file_operations * fops, int perm); /** Create a file for read/write access to an unsigned long. */ -int oprofilefs_create_ulong(struct super_block * sb, struct dentry * root, +int oprofilefs_create_ulong(struct dentry * root, char const * name, ulong * val); /** Create a file for read-only access to an unsigned long. */ -int oprofilefs_create_ro_ulong(struct super_block * sb, struct dentry * root, +int oprofilefs_create_ro_ulong(struct dentry * root, char const * name, ulong * val); /** Create a file for read-only access to an atomic_t. */ -int oprofilefs_create_ro_atomic(struct super_block * sb, struct dentry * root, +int oprofilefs_create_ro_atomic(struct dentry * root, char const * name, atomic_t * val); /** create a directory */ -- cgit v1.2.3 From 2b2fee80a7058959a6a9ba8706b3af5589b286d3 Mon Sep 17 00:00:00 2001 From: Al Viro Date: Fri, 19 Jul 2013 16:13:30 +0400 Subject: oprofile: get rid of pointless forward declarations of struct super_block Signed-off-by: Al Viro --- drivers/oprofile/oprof.h | 1 - drivers/oprofile/oprofile_stats.h | 1 - include/linux/oprofile.h | 1 - 3 files changed, 3 deletions(-) (limited to 'drivers') diff --git a/drivers/oprofile/oprof.h b/drivers/oprofile/oprof.h index 8c43f20ab5fa..d5412060ab0f 100644 --- a/drivers/oprofile/oprof.h +++ b/drivers/oprofile/oprof.h @@ -30,7 +30,6 @@ extern struct oprofile_operations oprofile_ops; extern unsigned long oprofile_started; extern unsigned long oprofile_backtrace_depth; -struct super_block; struct dentry; void oprofile_create_files(struct dentry *root); diff --git a/drivers/oprofile/oprofile_stats.h b/drivers/oprofile/oprofile_stats.h index 13e8e3f1e356..1fc622bd1834 100644 --- a/drivers/oprofile/oprofile_stats.h +++ b/drivers/oprofile/oprofile_stats.h @@ -25,7 +25,6 @@ extern struct oprofile_stat_struct oprofile_stats; /* reset all stats to zero */ void oprofile_reset_stats(void); -struct super_block; struct dentry; /* create the stats/ dir */ diff --git a/include/linux/oprofile.h b/include/linux/oprofile.h index 166ef4fb4b5c..b2a0f15f11fe 100644 --- a/include/linux/oprofile.h +++ b/include/linux/oprofile.h @@ -42,7 +42,6 @@ #define IBS_FETCH_CODE 13 #define IBS_OP_CODE 14 -struct super_block; struct dentry; struct file_operations; struct pt_regs; -- cgit v1.2.3 From 0507c78ae80073ace05ffead661ab8bc85e2940c Mon Sep 17 00:00:00 2001 From: Al Viro Date: Fri, 19 Jul 2013 18:09:56 +0400 Subject: ibmasmfs: don't bother passing superblock when not needed Signed-off-by: Al Viro --- drivers/misc/ibmasm/ibmasmfs.c | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) (limited to 'drivers') diff --git a/drivers/misc/ibmasm/ibmasmfs.c b/drivers/misc/ibmasm/ibmasmfs.c index ce5b75616b45..e8b933111e0d 100644 --- a/drivers/misc/ibmasm/ibmasmfs.c +++ b/drivers/misc/ibmasm/ibmasmfs.c @@ -149,8 +149,7 @@ static struct inode *ibmasmfs_make_inode(struct super_block *sb, int mode) return ret; } -static struct dentry *ibmasmfs_create_file (struct super_block *sb, - struct dentry *parent, +static struct dentry *ibmasmfs_create_file(struct dentry *parent, const char *name, const struct file_operations *fops, void *data, @@ -163,7 +162,7 @@ static struct dentry *ibmasmfs_create_file (struct super_block *sb, if (!dentry) return NULL; - inode = ibmasmfs_make_inode(sb, S_IFREG | mode); + inode = ibmasmfs_make_inode(parent->d_sb, S_IFREG | mode); if (!inode) { dput(dentry); return NULL; @@ -176,8 +175,7 @@ static struct dentry *ibmasmfs_create_file (struct super_block *sb, return dentry; } -static struct dentry *ibmasmfs_create_dir (struct super_block *sb, - struct dentry *parent, +static struct dentry *ibmasmfs_create_dir(struct dentry *parent, const char *name) { struct dentry *dentry; @@ -187,7 +185,7 @@ static struct dentry *ibmasmfs_create_dir (struct super_block *sb, if (!dentry) return NULL; - inode = ibmasmfs_make_inode(sb, S_IFDIR | 0500); + inode = ibmasmfs_make_inode(parent->d_sb, S_IFDIR | 0500); if (!inode) { dput(dentry); return NULL; @@ -612,20 +610,20 @@ static void ibmasmfs_create_files (struct super_block *sb) struct dentry *dir; struct dentry *remote_dir; sp = list_entry(entry, struct service_processor, node); - dir = ibmasmfs_create_dir(sb, sb->s_root, sp->dirname); + dir = ibmasmfs_create_dir(sb->s_root, sp->dirname); if (!dir) continue; - ibmasmfs_create_file(sb, dir, "command", &command_fops, sp, S_IRUSR|S_IWUSR); - ibmasmfs_create_file(sb, dir, "event", &event_fops, sp, S_IRUSR|S_IWUSR); - ibmasmfs_create_file(sb, dir, "reverse_heartbeat", &r_heartbeat_fops, sp, S_IRUSR|S_IWUSR); + ibmasmfs_create_file(dir, "command", &command_fops, sp, S_IRUSR|S_IWUSR); + ibmasmfs_create_file(dir, "event", &event_fops, sp, S_IRUSR|S_IWUSR); + ibmasmfs_create_file(dir, "reverse_heartbeat", &r_heartbeat_fops, sp, S_IRUSR|S_IWUSR); - remote_dir = ibmasmfs_create_dir(sb, dir, "remote_video"); + remote_dir = ibmasmfs_create_dir(dir, "remote_video"); if (!remote_dir) continue; - ibmasmfs_create_file(sb, remote_dir, "width", &remote_settings_fops, (void *)display_width(sp), S_IRUSR|S_IWUSR); - ibmasmfs_create_file(sb, remote_dir, "height", &remote_settings_fops, (void *)display_height(sp), S_IRUSR|S_IWUSR); - ibmasmfs_create_file(sb, remote_dir, "depth", &remote_settings_fops, (void *)display_depth(sp), S_IRUSR|S_IWUSR); + ibmasmfs_create_file(remote_dir, "width", &remote_settings_fops, (void *)display_width(sp), S_IRUSR|S_IWUSR); + ibmasmfs_create_file(remote_dir, "height", &remote_settings_fops, (void *)display_height(sp), S_IRUSR|S_IWUSR); + ibmasmfs_create_file(remote_dir, "depth", &remote_settings_fops, (void *)display_depth(sp), S_IRUSR|S_IWUSR); } } -- cgit v1.2.3