From: Arjan van de Ven Date: Mon, 12 Feb 2007 08:55:28 +0000 (-0800) Subject: [PATCH] mark struct file_operations const 1 X-Git-Tag: v2.6.21-rc1~274^2~16 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=540473208f8ac71c25a87e1a2670c3c18dd4d6db;p=linux-2.6 [PATCH] mark struct file_operations const 1 Many struct file_operations in the kernel can be "const". Marking them const moves these to the .rodata section, which avoids false sharing with potential dirty data. In addition it'll catch accidental writes at compile time to these shared resources. Signed-off-by: Arjan van de Ven Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- diff --git a/include/linux/atalk.h b/include/linux/atalk.h index 75b8baca08..d12984ddaa 100644 --- a/include/linux/atalk.h +++ b/include/linux/atalk.h @@ -182,7 +182,7 @@ extern rwlock_t atalk_interfaces_lock; extern struct atalk_route atrtr_default; -extern struct file_operations atalk_seq_arp_fops; +extern const struct file_operations atalk_seq_arp_fops; extern int sysctl_aarp_expiry_time; extern int sysctl_aarp_tick_time; diff --git a/include/linux/cpuset.h b/include/linux/cpuset.h index fd404416f3..826b15e914 100644 --- a/include/linux/cpuset.h +++ b/include/linux/cpuset.h @@ -55,7 +55,7 @@ extern int cpuset_excl_nodes_overlap(const struct task_struct *p); extern int cpuset_memory_pressure_enabled; extern void __cpuset_memory_pressure_bump(void); -extern struct file_operations proc_cpuset_operations; +extern const struct file_operations proc_cpuset_operations; extern char *cpuset_task_status_allowed(struct task_struct *task, char *buffer); extern void cpuset_lock(void); diff --git a/include/linux/random.h b/include/linux/random.h index 01ad71033d..36f125c0c6 100644 --- a/include/linux/random.h +++ b/include/linux/random.h @@ -63,7 +63,7 @@ extern u64 secure_dccp_sequence_number(__be32 saddr, __be32 daddr, __be16 sport, __be16 dport); #ifndef MODULE -extern struct file_operations random_fops, urandom_fops; +extern const struct file_operations random_fops, urandom_fops; #endif unsigned int get_random_int(void); diff --git a/include/linux/security.h b/include/linux/security.h index c554f60f18..7f88d97575 100644 --- a/include/linux/security.h +++ b/include/linux/security.h @@ -2130,7 +2130,7 @@ extern int mod_reg_security (const char *name, struct security_operations *ops); extern int mod_unreg_security (const char *name, struct security_operations *ops); extern struct dentry *securityfs_create_file(const char *name, mode_t mode, struct dentry *parent, void *data, - struct file_operations *fops); + const struct file_operations *fops); extern struct dentry *securityfs_create_dir(const char *name, struct dentry *parent); extern void securityfs_remove(struct dentry *dentry); diff --git a/include/net/ax25.h b/include/net/ax25.h index 5ae10dd2e3..47ff2f46e9 100644 --- a/include/net/ax25.h +++ b/include/net/ax25.h @@ -377,7 +377,7 @@ extern int ax25_check_iframes_acked(ax25_cb *, unsigned short); /* ax25_route.c */ extern void ax25_rt_device_down(struct net_device *); extern int ax25_rt_ioctl(unsigned int, void __user *); -extern struct file_operations ax25_route_fops; +extern const struct file_operations ax25_route_fops; extern ax25_route *ax25_get_route(ax25_address *addr, struct net_device *dev); extern int ax25_rt_autobind(ax25_cb *, ax25_address *); extern struct sk_buff *ax25_rt_build_path(struct sk_buff *, ax25_address *, ax25_address *, ax25_digi *); @@ -430,7 +430,7 @@ extern unsigned long ax25_display_timer(struct timer_list *); extern int ax25_uid_policy; extern ax25_uid_assoc *ax25_findbyuid(uid_t); extern int __must_check ax25_uid_ioctl(int, struct sockaddr_ax25 *); -extern struct file_operations ax25_uid_fops; +extern const struct file_operations ax25_uid_fops; extern void ax25_uid_free(void); /* sysctl_net_ax25.c */ diff --git a/include/net/netfilter/nf_conntrack_expect.h b/include/net/netfilter/nf_conntrack_expect.h index 41bcc9eb42..173c7c1eff 100644 --- a/include/net/netfilter/nf_conntrack_expect.h +++ b/include/net/netfilter/nf_conntrack_expect.h @@ -8,7 +8,7 @@ extern struct list_head nf_conntrack_expect_list; extern struct kmem_cache *nf_conntrack_expect_cachep; -extern struct file_operations exp_file_ops; +extern const struct file_operations exp_file_ops; struct nf_conntrack_expect { diff --git a/include/net/netrom.h b/include/net/netrom.h index e0ca112024..f06852bba6 100644 --- a/include/net/netrom.h +++ b/include/net/netrom.h @@ -215,8 +215,8 @@ extern struct net_device *nr_dev_get(ax25_address *); extern int nr_rt_ioctl(unsigned int, void __user *); extern void nr_link_failed(ax25_cb *, int); extern int nr_route_frame(struct sk_buff *, ax25_cb *); -extern struct file_operations nr_nodes_fops; -extern struct file_operations nr_neigh_fops; +extern const struct file_operations nr_nodes_fops; +extern const struct file_operations nr_neigh_fops; extern void nr_rt_free(void); /* nr_subr.c */ diff --git a/include/net/rose.h b/include/net/rose.h index 4c05a88b92..a4047d3cf5 100644 --- a/include/net/rose.h +++ b/include/net/rose.h @@ -189,9 +189,9 @@ extern void rose_enquiry_response(struct sock *); /* rose_route.c */ extern struct rose_neigh rose_loopback_neigh; -extern struct file_operations rose_neigh_fops; -extern struct file_operations rose_nodes_fops; -extern struct file_operations rose_routes_fops; +extern const struct file_operations rose_neigh_fops; +extern const struct file_operations rose_nodes_fops; +extern const struct file_operations rose_routes_fops; extern void rose_add_loopback_neigh(void); extern int __must_check rose_add_loopback_node(rose_address *); diff --git a/include/sound/pcm.h b/include/sound/pcm.h index ee6bc2d068..deff5a92ef 100644 --- a/include/sound/pcm.h +++ b/include/sound/pcm.h @@ -447,7 +447,7 @@ struct snd_pcm_notify { * Registering */ -extern struct file_operations snd_pcm_f_ops[2]; +extern const struct file_operations snd_pcm_f_ops[2]; int snd_pcm_new(struct snd_card *card, char *id, int device, int playback_count, int capture_count,