You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
proc: introduce proc_create_seq{,_data}
Variants of proc_create{,_data} that directly take a struct seq_operations
argument and drastically reduces the boilerplate code in the callers.
All trivial callers converted over.
Signed-off-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
@@ -1942,19 +1942,6 @@ static const struct seq_operations ioc_seq_ops = {
|
||||
.show = ioc_show
|
||||
};
|
||||
|
||||
static int
|
||||
ioc_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return seq_open(file, &ioc_seq_ops);
|
||||
}
|
||||
|
||||
static const struct file_operations ioc_fops = {
|
||||
.open = ioc_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = seq_release
|
||||
};
|
||||
|
||||
static void __init
|
||||
ioc_proc_init(void)
|
||||
{
|
||||
@@ -1964,7 +1951,7 @@ ioc_proc_init(void)
|
||||
if (!dir)
|
||||
return;
|
||||
|
||||
proc_create(ioc_list->name, 0, dir, &ioc_fops);
|
||||
proc_create_seq(ioc_list->name, 0, dir, &ioc_seq_ops);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
@@ -5708,13 +5708,6 @@ const struct seq_operations pfm_seq_ops = {
|
||||
.show = pfm_proc_show
|
||||
};
|
||||
|
||||
static int
|
||||
pfm_proc_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return seq_open(file, &pfm_seq_ops);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* we come here as soon as local_cpu_data->pfm_syst_wide is set. this happens
|
||||
* during pfm_enable() hence before pfm_start(). We cannot assume monitoring
|
||||
@@ -6537,13 +6530,6 @@ found:
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct file_operations pfm_proc_fops = {
|
||||
.open = pfm_proc_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = seq_release,
|
||||
};
|
||||
|
||||
int __init
|
||||
pfm_init(void)
|
||||
{
|
||||
@@ -6615,7 +6601,7 @@ pfm_init(void)
|
||||
/*
|
||||
* create /proc/perfmon (mostly for debugging purposes)
|
||||
*/
|
||||
perfmon_dir = proc_create("perfmon", S_IRUGO, NULL, &pfm_proc_fops);
|
||||
perfmon_dir = proc_create_seq("perfmon", S_IRUGO, NULL, &pfm_seq_ops);
|
||||
if (perfmon_dir == NULL) {
|
||||
printk(KERN_ERR "perfmon: cannot create /proc entry, perfmon disabled\n");
|
||||
pmu_conf = NULL;
|
||||
|
||||
@@ -386,18 +386,6 @@ static const struct seq_operations service_level_seq_ops = {
|
||||
.show = service_level_show
|
||||
};
|
||||
|
||||
static int service_level_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return seq_open(file, &service_level_seq_ops);
|
||||
}
|
||||
|
||||
static const struct file_operations service_level_ops = {
|
||||
.open = service_level_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = seq_release
|
||||
};
|
||||
|
||||
static void service_level_vm_print(struct seq_file *m,
|
||||
struct service_level *slr)
|
||||
{
|
||||
@@ -420,7 +408,7 @@ static struct service_level service_level_vm = {
|
||||
|
||||
static __init int create_proc_service_level(void)
|
||||
{
|
||||
proc_create("service_levels", 0, NULL, &service_level_ops);
|
||||
proc_create_seq("service_levels", 0, NULL, &service_level_seq_ops);
|
||||
if (MACHINE_IS_VM)
|
||||
register_service_level(&service_level_vm);
|
||||
return 0;
|
||||
|
||||
+2
-26
@@ -1027,18 +1027,6 @@ static const struct seq_operations partitions_op = {
|
||||
.stop = disk_seqf_stop,
|
||||
.show = show_partition
|
||||
};
|
||||
|
||||
static int partitions_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return seq_open(file, &partitions_op);
|
||||
}
|
||||
|
||||
static const struct file_operations proc_partitions_operations = {
|
||||
.open = partitions_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = seq_release,
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1377,22 +1365,10 @@ static const struct seq_operations diskstats_op = {
|
||||
.show = diskstats_show
|
||||
};
|
||||
|
||||
static int diskstats_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return seq_open(file, &diskstats_op);
|
||||
}
|
||||
|
||||
static const struct file_operations proc_diskstats_operations = {
|
||||
.open = diskstats_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = seq_release,
|
||||
};
|
||||
|
||||
static int __init proc_genhd_init(void)
|
||||
{
|
||||
proc_create("diskstats", 0, NULL, &proc_diskstats_operations);
|
||||
proc_create("partitions", 0, NULL, &proc_partitions_operations);
|
||||
proc_create_seq("diskstats", 0, NULL, &diskstats_op);
|
||||
proc_create_seq("partitions", 0, NULL, &partitions_op);
|
||||
return 0;
|
||||
}
|
||||
module_init(proc_genhd_init);
|
||||
|
||||
+1
-13
@@ -94,21 +94,9 @@ static const struct seq_operations crypto_seq_ops = {
|
||||
.show = c_show
|
||||
};
|
||||
|
||||
static int crypto_info_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return seq_open(file, &crypto_seq_ops);
|
||||
}
|
||||
|
||||
static const struct file_operations proc_crypto_ops = {
|
||||
.open = crypto_info_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = seq_release
|
||||
};
|
||||
|
||||
void __init crypto_init_proc(void)
|
||||
{
|
||||
proc_create("crypto", 0, NULL, &proc_crypto_ops);
|
||||
proc_create_seq("crypto", 0, NULL, &crypto_seq_ops);
|
||||
}
|
||||
|
||||
void __exit crypto_exit_proc(void)
|
||||
|
||||
+1
-14
@@ -95,19 +95,6 @@ static const struct seq_operations misc_seq_ops = {
|
||||
.stop = misc_seq_stop,
|
||||
.show = misc_seq_show,
|
||||
};
|
||||
|
||||
static int misc_seq_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return seq_open(file, &misc_seq_ops);
|
||||
}
|
||||
|
||||
static const struct file_operations misc_proc_fops = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = misc_seq_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = seq_release,
|
||||
};
|
||||
#endif
|
||||
|
||||
static int misc_open(struct inode *inode, struct file *file)
|
||||
@@ -282,7 +269,7 @@ static int __init misc_init(void)
|
||||
int err;
|
||||
struct proc_dir_entry *ret;
|
||||
|
||||
ret = proc_create("misc", 0, NULL, &misc_proc_fops);
|
||||
ret = proc_create_seq("misc", 0, NULL, &misc_seq_ops);
|
||||
misc_class = class_create(THIS_MODULE, "misc");
|
||||
err = PTR_ERR(misc_class);
|
||||
if (IS_ERR(misc_class))
|
||||
|
||||
@@ -108,32 +108,6 @@ static const struct seq_operations seq_contrstats_ops = {
|
||||
.show = contrstats_show,
|
||||
};
|
||||
|
||||
static int seq_controller_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return seq_open(file, &seq_controller_ops);
|
||||
}
|
||||
|
||||
static int seq_contrstats_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return seq_open(file, &seq_contrstats_ops);
|
||||
}
|
||||
|
||||
static const struct file_operations proc_controller_ops = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = seq_controller_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = seq_release,
|
||||
};
|
||||
|
||||
static const struct file_operations proc_contrstats_ops = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = seq_contrstats_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = seq_release,
|
||||
};
|
||||
|
||||
// /proc/capi/applications:
|
||||
// applid l3cnt dblkcnt dblklen #ncci recvqueuelen
|
||||
// /proc/capi/applstats:
|
||||
@@ -216,34 +190,6 @@ static const struct seq_operations seq_applstats_ops = {
|
||||
.show = applstats_show,
|
||||
};
|
||||
|
||||
static int
|
||||
seq_applications_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return seq_open(file, &seq_applications_ops);
|
||||
}
|
||||
|
||||
static int
|
||||
seq_applstats_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return seq_open(file, &seq_applstats_ops);
|
||||
}
|
||||
|
||||
static const struct file_operations proc_applications_ops = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = seq_applications_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = seq_release,
|
||||
};
|
||||
|
||||
static const struct file_operations proc_applstats_ops = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = seq_applstats_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = seq_release,
|
||||
};
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
static void *capi_driver_start(struct seq_file *seq, loff_t *pos)
|
||||
@@ -279,22 +225,6 @@ static const struct seq_operations seq_capi_driver_ops = {
|
||||
.show = capi_driver_show,
|
||||
};
|
||||
|
||||
static int
|
||||
seq_capi_driver_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
int err;
|
||||
err = seq_open(file, &seq_capi_driver_ops);
|
||||
return err;
|
||||
}
|
||||
|
||||
static const struct file_operations proc_driver_ops = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = seq_capi_driver_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = seq_release,
|
||||
};
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
void __init
|
||||
@@ -302,11 +232,11 @@ kcapi_proc_init(void)
|
||||
{
|
||||
proc_mkdir("capi", NULL);
|
||||
proc_mkdir("capi/controllers", NULL);
|
||||
proc_create("capi/controller", 0, NULL, &proc_controller_ops);
|
||||
proc_create("capi/contrstats", 0, NULL, &proc_contrstats_ops);
|
||||
proc_create("capi/applications", 0, NULL, &proc_applications_ops);
|
||||
proc_create("capi/applstats", 0, NULL, &proc_applstats_ops);
|
||||
proc_create("capi/driver", 0, NULL, &proc_driver_ops);
|
||||
proc_create_seq("capi/controller", 0, NULL, &seq_controller_ops);
|
||||
proc_create_seq("capi/contrstats", 0, NULL, &seq_contrstats_ops);
|
||||
proc_create_seq("capi/applications", 0, NULL, &seq_applications_ops);
|
||||
proc_create_seq("capi/applstats", 0, NULL, &seq_applstats_ops);
|
||||
proc_create_seq("capi/driver", 0, NULL, &seq_capi_driver_ops);
|
||||
}
|
||||
|
||||
void __exit
|
||||
|
||||
@@ -449,20 +449,6 @@ static const struct seq_operations bpq_seqops = {
|
||||
.show = bpq_seq_show,
|
||||
};
|
||||
|
||||
static int bpq_info_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return seq_open(file, &bpq_seqops);
|
||||
}
|
||||
|
||||
static const struct file_operations bpq_info_fops = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = bpq_info_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = seq_release,
|
||||
};
|
||||
|
||||
|
||||
/* ------------------------------------------------------------------------ */
|
||||
|
||||
static const struct net_device_ops bpq_netdev_ops = {
|
||||
@@ -590,7 +576,7 @@ static int bpq_device_event(struct notifier_block *this,
|
||||
static int __init bpq_init_driver(void)
|
||||
{
|
||||
#ifdef CONFIG_PROC_FS
|
||||
if (!proc_create("bpqether", 0444, init_net.proc_net, &bpq_info_fops)) {
|
||||
if (!proc_create_seq("bpqether", 0444, init_net.proc_net, &bpq_seqops)) {
|
||||
printk(KERN_ERR
|
||||
"bpq: cannot create /proc/net/bpqether entry.\n");
|
||||
return -ENOENT;
|
||||
|
||||
@@ -2084,21 +2084,6 @@ static const struct seq_operations scc_net_seq_ops = {
|
||||
.stop = scc_net_seq_stop,
|
||||
.show = scc_net_seq_show,
|
||||
};
|
||||
|
||||
|
||||
static int scc_net_seq_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return seq_open(file, &scc_net_seq_ops);
|
||||
}
|
||||
|
||||
static const struct file_operations scc_net_seq_fops = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = scc_net_seq_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = seq_release_private,
|
||||
};
|
||||
|
||||
#endif /* CONFIG_PROC_FS */
|
||||
|
||||
|
||||
@@ -2122,7 +2107,7 @@ static int __init scc_init_driver (void)
|
||||
}
|
||||
rtnl_unlock();
|
||||
|
||||
proc_create("z8530drv", 0, init_net.proc_net, &scc_net_seq_fops);
|
||||
proc_create_seq("z8530drv", 0, init_net.proc_net, &scc_net_seq_ops);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -841,20 +841,6 @@ static const struct seq_operations yam_seqops = {
|
||||
.stop = yam_seq_stop,
|
||||
.show = yam_seq_show,
|
||||
};
|
||||
|
||||
static int yam_info_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return seq_open(file, &yam_seqops);
|
||||
}
|
||||
|
||||
static const struct file_operations yam_info_fops = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = yam_info_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = seq_release,
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1168,7 +1154,7 @@ static int __init yam_init_driver(void)
|
||||
yam_timer.expires = jiffies + HZ / 100;
|
||||
add_timer(&yam_timer);
|
||||
|
||||
proc_create("yam", 0444, init_net.proc_net, &yam_info_fops);
|
||||
proc_create_seq("yam", 0444, init_net.proc_net, &yam_seqops);
|
||||
return 0;
|
||||
error:
|
||||
while (--i >= 0) {
|
||||
|
||||
+2
-15
@@ -435,25 +435,12 @@ int pci_proc_detach_bus(struct pci_bus *bus)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int proc_bus_pci_dev_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return seq_open(file, &proc_bus_pci_devices_op);
|
||||
}
|
||||
|
||||
static const struct file_operations proc_bus_pci_dev_operations = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = proc_bus_pci_dev_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = seq_release,
|
||||
};
|
||||
|
||||
static int __init pci_proc_init(void)
|
||||
{
|
||||
struct pci_dev *dev = NULL;
|
||||
proc_bus_pci_dir = proc_mkdir("bus/pci", NULL);
|
||||
proc_create("devices", 0, proc_bus_pci_dir,
|
||||
&proc_bus_pci_dev_operations);
|
||||
proc_create_seq("devices", 0, proc_bus_pci_dir,
|
||||
&proc_bus_pci_devices_op);
|
||||
proc_initialized = 1;
|
||||
for_each_pci_dev(dev)
|
||||
pci_proc_attach_device(dev);
|
||||
|
||||
@@ -131,19 +131,6 @@ static const struct seq_operations dasd_devices_seq_ops = {
|
||||
.show = dasd_devices_show,
|
||||
};
|
||||
|
||||
static int dasd_devices_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return seq_open(file, &dasd_devices_seq_ops);
|
||||
}
|
||||
|
||||
static const struct file_operations dasd_devices_file_ops = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = dasd_devices_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = seq_release,
|
||||
};
|
||||
|
||||
#ifdef CONFIG_DASD_PROFILE
|
||||
static int dasd_stats_all_block_on(void)
|
||||
{
|
||||
@@ -352,10 +339,10 @@ dasd_proc_init(void)
|
||||
dasd_proc_root_entry = proc_mkdir("dasd", NULL);
|
||||
if (!dasd_proc_root_entry)
|
||||
goto out_nodasd;
|
||||
dasd_devices_entry = proc_create("devices",
|
||||
dasd_devices_entry = proc_create_seq("devices",
|
||||
S_IFREG | S_IRUGO | S_IWUSR,
|
||||
dasd_proc_root_entry,
|
||||
&dasd_devices_file_ops);
|
||||
&dasd_devices_seq_ops);
|
||||
if (!dasd_devices_entry)
|
||||
goto out_nodevices;
|
||||
dasd_statistics_entry = proc_create("statistics",
|
||||
|
||||
@@ -105,29 +105,14 @@ static const struct seq_operations tape_proc_seq = {
|
||||
.show = tape_proc_show,
|
||||
};
|
||||
|
||||
static int tape_proc_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return seq_open(file, &tape_proc_seq);
|
||||
}
|
||||
|
||||
static const struct file_operations tape_proc_ops =
|
||||
{
|
||||
.owner = THIS_MODULE,
|
||||
.open = tape_proc_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = seq_release,
|
||||
};
|
||||
|
||||
/*
|
||||
* Initialize procfs stuff on startup
|
||||
*/
|
||||
void
|
||||
tape_proc_init(void)
|
||||
{
|
||||
tape_proc_devices =
|
||||
proc_create("tapedevices", S_IFREG | S_IRUGO | S_IWUSR, NULL,
|
||||
&tape_proc_ops);
|
||||
tape_proc_devices = proc_create_seq("tapedevices",
|
||||
S_IFREG | S_IRUGO | S_IWUSR, NULL, &tape_proc_seq);
|
||||
if (tape_proc_devices == NULL) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -244,42 +244,6 @@ static const struct seq_operations ipx_seq_socket_ops = {
|
||||
.show = ipx_seq_socket_show,
|
||||
};
|
||||
|
||||
static int ipx_seq_route_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return seq_open(file, &ipx_seq_route_ops);
|
||||
}
|
||||
|
||||
static int ipx_seq_interface_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return seq_open(file, &ipx_seq_interface_ops);
|
||||
}
|
||||
|
||||
static int ipx_seq_socket_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return seq_open(file, &ipx_seq_socket_ops);
|
||||
}
|
||||
|
||||
static const struct file_operations ipx_seq_interface_fops = {
|
||||
.open = ipx_seq_interface_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = seq_release,
|
||||
};
|
||||
|
||||
static const struct file_operations ipx_seq_route_fops = {
|
||||
.open = ipx_seq_route_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = seq_release,
|
||||
};
|
||||
|
||||
static const struct file_operations ipx_seq_socket_fops = {
|
||||
.open = ipx_seq_socket_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = seq_release,
|
||||
};
|
||||
|
||||
static struct proc_dir_entry *ipx_proc_dir;
|
||||
|
||||
int __init ipx_proc_init(void)
|
||||
@@ -291,16 +255,17 @@ int __init ipx_proc_init(void)
|
||||
|
||||
if (!ipx_proc_dir)
|
||||
goto out;
|
||||
p = proc_create("interface", S_IRUGO,
|
||||
ipx_proc_dir, &ipx_seq_interface_fops);
|
||||
p = proc_create_seq("interface", S_IRUGO, ipx_proc_dir,
|
||||
&ipx_seq_interface_ops);
|
||||
if (!p)
|
||||
goto out_interface;
|
||||
|
||||
p = proc_create("route", S_IRUGO, ipx_proc_dir, &ipx_seq_route_fops);
|
||||
p = proc_create_seq("route", S_IRUGO, ipx_proc_dir, &ipx_seq_route_ops);
|
||||
if (!p)
|
||||
goto out_route;
|
||||
|
||||
p = proc_create("socket", S_IRUGO, ipx_proc_dir, &ipx_seq_socket_fops);
|
||||
p = proc_create_seq("socket", S_IRUGO, ipx_proc_dir,
|
||||
&ipx_seq_socket_ops);
|
||||
if (!p)
|
||||
goto out_socket;
|
||||
|
||||
|
||||
+1
-14
@@ -229,26 +229,13 @@ static int tty_ldiscs_seq_show(struct seq_file *m, void *v)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct seq_operations tty_ldiscs_seq_ops = {
|
||||
const struct seq_operations tty_ldiscs_seq_ops = {
|
||||
.start = tty_ldiscs_seq_start,
|
||||
.next = tty_ldiscs_seq_next,
|
||||
.stop = tty_ldiscs_seq_stop,
|
||||
.show = tty_ldiscs_seq_show,
|
||||
};
|
||||
|
||||
static int proc_tty_ldiscs_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return seq_open(file, &tty_ldiscs_seq_ops);
|
||||
}
|
||||
|
||||
const struct file_operations tty_ldiscs_proc_fops = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = proc_tty_ldiscs_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = seq_release,
|
||||
};
|
||||
|
||||
/**
|
||||
* tty_ldisc_ref_wait - wait for the tty ldisc
|
||||
* @tty: tty device
|
||||
|
||||
@@ -713,19 +713,6 @@ static const struct seq_operations proc_fb_seq_ops = {
|
||||
.show = fb_seq_show,
|
||||
};
|
||||
|
||||
static int proc_fb_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return seq_open(file, &proc_fb_seq_ops);
|
||||
}
|
||||
|
||||
static const struct file_operations fb_proc_fops = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = proc_fb_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = seq_release,
|
||||
};
|
||||
|
||||
/*
|
||||
* We hold a reference to the fb_info in file->private_data,
|
||||
* but if the current registered fb has changed, we don't
|
||||
@@ -1877,7 +1864,7 @@ fbmem_init(void)
|
||||
{
|
||||
int ret;
|
||||
|
||||
if (!proc_create("fb", 0, NULL, &fb_proc_fops))
|
||||
if (!proc_create_seq("fb", 0, NULL, &proc_fb_seq_ops))
|
||||
return -ENOMEM;
|
||||
|
||||
ret = register_chrdev(FB_MAJOR, "fb", &fb_fops);
|
||||
|
||||
+2
-15
@@ -96,19 +96,6 @@ static const struct seq_operations zorro_devices_seq_ops = {
|
||||
.show = zorro_seq_show,
|
||||
};
|
||||
|
||||
static int zorro_devices_proc_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return seq_open(file, &zorro_devices_seq_ops);
|
||||
}
|
||||
|
||||
static const struct file_operations zorro_devices_proc_fops = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = zorro_devices_proc_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = seq_release,
|
||||
};
|
||||
|
||||
static struct proc_dir_entry *proc_bus_zorro_dir;
|
||||
|
||||
static int __init zorro_proc_attach_device(unsigned int slot)
|
||||
@@ -132,8 +119,8 @@ static int __init zorro_proc_init(void)
|
||||
|
||||
if (MACH_IS_AMIGA && AMIGAHW_PRESENT(ZORRO)) {
|
||||
proc_bus_zorro_dir = proc_mkdir("bus/zorro", NULL);
|
||||
proc_create("devices", 0, proc_bus_zorro_dir,
|
||||
&zorro_devices_proc_fops);
|
||||
proc_create_seq("devices", 0, proc_bus_zorro_dir,
|
||||
&zorro_devices_seq_ops);
|
||||
for (slot = 0; slot < zorro_num_autocon; slot++)
|
||||
zorro_proc_attach_device(slot);
|
||||
}
|
||||
|
||||
+2
-17
@@ -84,21 +84,6 @@ static const struct seq_operations cachefiles_histogram_ops = {
|
||||
.show = cachefiles_histogram_show,
|
||||
};
|
||||
|
||||
/*
|
||||
* open "/proc/fs/cachefiles/XXX" which provide statistics summaries
|
||||
*/
|
||||
static int cachefiles_histogram_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return seq_open(file, &cachefiles_histogram_ops);
|
||||
}
|
||||
|
||||
static const struct file_operations cachefiles_histogram_fops = {
|
||||
.open = cachefiles_histogram_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = seq_release,
|
||||
};
|
||||
|
||||
/*
|
||||
* initialise the /proc/fs/cachefiles/ directory
|
||||
*/
|
||||
@@ -109,8 +94,8 @@ int __init cachefiles_proc_init(void)
|
||||
if (!proc_mkdir("fs/cachefiles", NULL))
|
||||
goto error_dir;
|
||||
|
||||
if (!proc_create("fs/cachefiles/histogram", S_IFREG | 0444, NULL,
|
||||
&cachefiles_histogram_fops))
|
||||
if (!proc_create_seq("fs/cachefiles/histogram", S_IFREG | 0444, NULL,
|
||||
&cachefiles_histogram_ops))
|
||||
goto error_histogram;
|
||||
|
||||
_leave(" = 0");
|
||||
|
||||
+1
-16
@@ -83,24 +83,9 @@ static void fscache_histogram_stop(struct seq_file *m, void *v)
|
||||
{
|
||||
}
|
||||
|
||||
static const struct seq_operations fscache_histogram_ops = {
|
||||
const struct seq_operations fscache_histogram_ops = {
|
||||
.start = fscache_histogram_start,
|
||||
.stop = fscache_histogram_stop,
|
||||
.next = fscache_histogram_next,
|
||||
.show = fscache_histogram_show,
|
||||
};
|
||||
|
||||
/*
|
||||
* open "/proc/fs/fscache/histogram" to provide latency data
|
||||
*/
|
||||
static int fscache_histogram_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return seq_open(file, &fscache_histogram_ops);
|
||||
}
|
||||
|
||||
const struct file_operations fscache_histogram_fops = {
|
||||
.open = fscache_histogram_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = seq_release,
|
||||
};
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
#include <linux/fscache-cache.h>
|
||||
#include <trace/events/fscache.h>
|
||||
#include <linux/sched.h>
|
||||
#include <linux/seq_file.h>
|
||||
|
||||
#define FSCACHE_MIN_THREADS 4
|
||||
#define FSCACHE_MAX_THREADS 32
|
||||
@@ -84,7 +85,7 @@ static inline void fscache_hist(atomic_t histogram[], unsigned long start_jif)
|
||||
atomic_inc(&histogram[jif]);
|
||||
}
|
||||
|
||||
extern const struct file_operations fscache_histogram_fops;
|
||||
extern const struct seq_operations fscache_histogram_ops;
|
||||
|
||||
#else
|
||||
#define fscache_hist(hist, start_jif) do {} while (0)
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user