Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[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 <arjan@linux.intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

authored by

Arjan van de Ven and committed by
Linus Torvalds
54047320 f59e5e82

+13 -13
+1 -1
include/linux/atalk.h
··· 182 182 183 183 extern struct atalk_route atrtr_default; 184 184 185 - extern struct file_operations atalk_seq_arp_fops; 185 + extern const struct file_operations atalk_seq_arp_fops; 186 186 187 187 extern int sysctl_aarp_expiry_time; 188 188 extern int sysctl_aarp_tick_time;
+1 -1
include/linux/cpuset.h
··· 55 55 extern int cpuset_memory_pressure_enabled; 56 56 extern void __cpuset_memory_pressure_bump(void); 57 57 58 - extern struct file_operations proc_cpuset_operations; 58 + extern const struct file_operations proc_cpuset_operations; 59 59 extern char *cpuset_task_status_allowed(struct task_struct *task, char *buffer); 60 60 61 61 extern void cpuset_lock(void);
+1 -1
include/linux/random.h
··· 63 63 __be16 sport, __be16 dport); 64 64 65 65 #ifndef MODULE 66 - extern struct file_operations random_fops, urandom_fops; 66 + extern const struct file_operations random_fops, urandom_fops; 67 67 #endif 68 68 69 69 unsigned int get_random_int(void);
+1 -1
include/linux/security.h
··· 2130 2130 extern int mod_unreg_security (const char *name, struct security_operations *ops); 2131 2131 extern struct dentry *securityfs_create_file(const char *name, mode_t mode, 2132 2132 struct dentry *parent, void *data, 2133 - struct file_operations *fops); 2133 + const struct file_operations *fops); 2134 2134 extern struct dentry *securityfs_create_dir(const char *name, struct dentry *parent); 2135 2135 extern void securityfs_remove(struct dentry *dentry); 2136 2136
+2 -2
include/net/ax25.h
··· 377 377 /* ax25_route.c */ 378 378 extern void ax25_rt_device_down(struct net_device *); 379 379 extern int ax25_rt_ioctl(unsigned int, void __user *); 380 - extern struct file_operations ax25_route_fops; 380 + extern const struct file_operations ax25_route_fops; 381 381 extern ax25_route *ax25_get_route(ax25_address *addr, struct net_device *dev); 382 382 extern int ax25_rt_autobind(ax25_cb *, ax25_address *); 383 383 extern struct sk_buff *ax25_rt_build_path(struct sk_buff *, ax25_address *, ax25_address *, ax25_digi *); ··· 430 430 extern int ax25_uid_policy; 431 431 extern ax25_uid_assoc *ax25_findbyuid(uid_t); 432 432 extern int __must_check ax25_uid_ioctl(int, struct sockaddr_ax25 *); 433 - extern struct file_operations ax25_uid_fops; 433 + extern const struct file_operations ax25_uid_fops; 434 434 extern void ax25_uid_free(void); 435 435 436 436 /* sysctl_net_ax25.c */
+1 -1
include/net/netfilter/nf_conntrack_expect.h
··· 8 8 9 9 extern struct list_head nf_conntrack_expect_list; 10 10 extern struct kmem_cache *nf_conntrack_expect_cachep; 11 - extern struct file_operations exp_file_ops; 11 + extern const struct file_operations exp_file_ops; 12 12 13 13 struct nf_conntrack_expect 14 14 {
+2 -2
include/net/netrom.h
··· 215 215 extern int nr_rt_ioctl(unsigned int, void __user *); 216 216 extern void nr_link_failed(ax25_cb *, int); 217 217 extern int nr_route_frame(struct sk_buff *, ax25_cb *); 218 - extern struct file_operations nr_nodes_fops; 219 - extern struct file_operations nr_neigh_fops; 218 + extern const struct file_operations nr_nodes_fops; 219 + extern const struct file_operations nr_neigh_fops; 220 220 extern void nr_rt_free(void); 221 221 222 222 /* nr_subr.c */
+3 -3
include/net/rose.h
··· 189 189 190 190 /* rose_route.c */ 191 191 extern struct rose_neigh rose_loopback_neigh; 192 - extern struct file_operations rose_neigh_fops; 193 - extern struct file_operations rose_nodes_fops; 194 - extern struct file_operations rose_routes_fops; 192 + extern const struct file_operations rose_neigh_fops; 193 + extern const struct file_operations rose_nodes_fops; 194 + extern const struct file_operations rose_routes_fops; 195 195 196 196 extern void rose_add_loopback_neigh(void); 197 197 extern int __must_check rose_add_loopback_node(rose_address *);
+1 -1
include/sound/pcm.h
··· 447 447 * Registering 448 448 */ 449 449 450 - extern struct file_operations snd_pcm_f_ops[2]; 450 + extern const struct file_operations snd_pcm_f_ops[2]; 451 451 452 452 int snd_pcm_new(struct snd_card *card, char *id, int device, 453 453 int playback_count, int capture_count,