From: Arjan van de Ven Date: Mon, 12 Feb 2007 08:55:36 +0000 (-0800) Subject: [PATCH] mark struct file_operations const 8 X-Git-Tag: v2.6.21-rc1~274^2~9 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=da7071d7e32d15149cc513f096a3638097b66387;p=linux-2.6 [PATCH] mark struct file_operations const 8 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/net/irda/ircomm/ircomm_core.c b/net/irda/ircomm/ircomm_core.c index c28ee7bce2..ec40715dcd 100644 --- a/net/irda/ircomm/ircomm_core.c +++ b/net/irda/ircomm/ircomm_core.c @@ -56,7 +56,7 @@ static void ircomm_control_indication(struct ircomm_cb *self, extern struct proc_dir_entry *proc_irda; static int ircomm_seq_open(struct inode *, struct file *); -static struct file_operations ircomm_proc_fops = { +static const struct file_operations ircomm_proc_fops = { .owner = THIS_MODULE, .open = ircomm_seq_open, .read = seq_read, diff --git a/net/irda/iriap.c b/net/irda/iriap.c index 98b0fa9657..915d9384f3 100644 --- a/net/irda/iriap.c +++ b/net/irda/iriap.c @@ -1080,7 +1080,7 @@ static int irias_seq_open(struct inode *inode, struct file *file) return seq_open(file, &irias_seq_ops); } -struct file_operations irias_seq_fops = { +const struct file_operations irias_seq_fops = { .owner = THIS_MODULE, .open = irias_seq_open, .read = seq_read, diff --git a/net/irda/irlan/irlan_common.c b/net/irda/irlan/irlan_common.c index 9c3dc57ff7..fcf9d65996 100644 --- a/net/irda/irlan/irlan_common.c +++ b/net/irda/irlan/irlan_common.c @@ -93,7 +93,7 @@ extern struct proc_dir_entry *proc_irda; static int irlan_seq_open(struct inode *inode, struct file *file); -static struct file_operations irlan_fops = { +static const struct file_operations irlan_fops = { .owner = THIS_MODULE, .open = irlan_seq_open, .read = seq_read, diff --git a/net/irda/irlap.c b/net/irda/irlap.c index fd73e4af71..d93ebd1143 100644 --- a/net/irda/irlap.c +++ b/net/irda/irlap.c @@ -1244,7 +1244,7 @@ out_kfree: goto out; } -struct file_operations irlap_seq_fops = { +const struct file_operations irlap_seq_fops = { .owner = THIS_MODULE, .open = irlap_seq_open, .read = seq_read, diff --git a/net/irda/irlmp.c b/net/irda/irlmp.c index b134c3cf2b..9df0461b6d 100644 --- a/net/irda/irlmp.c +++ b/net/irda/irlmp.c @@ -2026,7 +2026,7 @@ out_kfree: goto out; } -struct file_operations irlmp_seq_fops = { +const struct file_operations irlmp_seq_fops = { .owner = THIS_MODULE, .open = irlmp_seq_open, .read = seq_read, diff --git a/net/irda/irttp.c b/net/irda/irttp.c index 68836358fd..a7486b3bdd 100644 --- a/net/irda/irttp.c +++ b/net/irda/irttp.c @@ -1895,7 +1895,7 @@ out_kfree: goto out; } -struct file_operations irttp_seq_fops = { +const struct file_operations irttp_seq_fops = { .owner = THIS_MODULE, .open = irttp_seq_open, .read = seq_read, diff --git a/net/llc/llc_proc.c b/net/llc/llc_proc.c index dcfe6c7394..3ab9d9f8b1 100644 --- a/net/llc/llc_proc.c +++ b/net/llc/llc_proc.c @@ -208,7 +208,7 @@ static int llc_seq_core_open(struct inode *inode, struct file *file) return seq_open(file, &llc_seq_core_ops); } -static struct file_operations llc_seq_socket_fops = { +static const struct file_operations llc_seq_socket_fops = { .owner = THIS_MODULE, .open = llc_seq_socket_open, .read = seq_read, @@ -216,7 +216,7 @@ static struct file_operations llc_seq_socket_fops = { .release = seq_release, }; -static struct file_operations llc_seq_core_fops = { +static const struct file_operations llc_seq_core_fops = { .owner = THIS_MODULE, .open = llc_seq_core_open, .read = seq_read, diff --git a/net/netfilter/nf_conntrack_expect.c b/net/netfilter/nf_conntrack_expect.c index 9cbf926cdd..5cdcd7f4e8 100644 --- a/net/netfilter/nf_conntrack_expect.c +++ b/net/netfilter/nf_conntrack_expect.c @@ -435,7 +435,7 @@ static int exp_open(struct inode *inode, struct file *file) return seq_open(file, &exp_seq_ops); } -struct file_operations exp_file_ops = { +const struct file_operations exp_file_ops = { .owner = THIS_MODULE, .open = exp_open, .read = seq_read, diff --git a/net/netfilter/nf_conntrack_standalone.c b/net/netfilter/nf_conntrack_standalone.c index f1cb60ff93..04ac12431d 100644 --- a/net/netfilter/nf_conntrack_standalone.c +++ b/net/netfilter/nf_conntrack_standalone.c @@ -229,7 +229,7 @@ out_free: return ret; } -static struct file_operations ct_file_ops = { +static const struct file_operations ct_file_ops = { .owner = THIS_MODULE, .open = ct_open, .read = seq_read, @@ -317,7 +317,7 @@ static int ct_cpu_seq_open(struct inode *inode, struct file *file) return seq_open(file, &ct_cpu_seq_ops); } -static struct file_operations ct_cpu_seq_fops = { +static const struct file_operations ct_cpu_seq_fops = { .owner = THIS_MODULE, .open = ct_cpu_seq_open, .read = seq_read, diff --git a/net/netfilter/nf_log.c b/net/netfilter/nf_log.c index 8901b3a07f..07e28e0896 100644 --- a/net/netfilter/nf_log.c +++ b/net/netfilter/nf_log.c @@ -151,7 +151,7 @@ static int nflog_open(struct inode *inode, struct file *file) return seq_open(file, &nflog_seq_ops); } -static struct file_operations nflog_file_ops = { +static const struct file_operations nflog_file_ops = { .owner = THIS_MODULE, .open = nflog_open, .read = seq_read, diff --git a/net/netfilter/nf_queue.c b/net/netfilter/nf_queue.c index 4d8936ed58..e136fea1db 100644 --- a/net/netfilter/nf_queue.c +++ b/net/netfilter/nf_queue.c @@ -331,7 +331,7 @@ static int nfqueue_open(struct inode *inode, struct file *file) return seq_open(file, &nfqueue_seq_ops); } -static struct file_operations nfqueue_file_ops = { +static const struct file_operations nfqueue_file_ops = { .owner = THIS_MODULE, .open = nfqueue_open, .read = seq_read, diff --git a/net/netfilter/nfnetlink_log.c b/net/netfilter/nfnetlink_log.c index d1505dd25c..c47e7e2ba6 100644 --- a/net/netfilter/nfnetlink_log.c +++ b/net/netfilter/nfnetlink_log.c @@ -1025,7 +1025,7 @@ out_free: return ret; } -static struct file_operations nful_file_ops = { +static const struct file_operations nful_file_ops = { .owner = THIS_MODULE, .open = nful_open, .read = seq_read, diff --git a/net/netfilter/nfnetlink_queue.c b/net/netfilter/nfnetlink_queue.c index a88a017da2..99e516eca4 100644 --- a/net/netfilter/nfnetlink_queue.c +++ b/net/netfilter/nfnetlink_queue.c @@ -1077,7 +1077,7 @@ out_free: return ret; } -static struct file_operations nfqnl_file_ops = { +static const struct file_operations nfqnl_file_ops = { .owner = THIS_MODULE, .open = nfqnl_open, .read = seq_read, diff --git a/net/netfilter/x_tables.c b/net/netfilter/x_tables.c index 8996584b84..134cc88f8c 100644 --- a/net/netfilter/x_tables.c +++ b/net/netfilter/x_tables.c @@ -772,7 +772,7 @@ static int xt_tgt_open(struct inode *inode, struct file *file) return ret; } -static struct file_operations xt_file_ops = { +static const struct file_operations xt_file_ops = { .owner = THIS_MODULE, .open = xt_tgt_open, .read = seq_read, diff --git a/net/netfilter/xt_hashlimit.c b/net/netfilter/xt_hashlimit.c index bd1f7a2048..269a1e7934 100644 --- a/net/netfilter/xt_hashlimit.c +++ b/net/netfilter/xt_hashlimit.c @@ -37,7 +37,7 @@ MODULE_ALIAS("ip6t_hashlimit"); /* need to declare this at the top */ static struct proc_dir_entry *hashlimit_procdir4; static struct proc_dir_entry *hashlimit_procdir6; -static struct file_operations dl_file_ops; +static const struct file_operations dl_file_ops; /* hash table crap */ struct dsthash_dst { @@ -714,7 +714,7 @@ static int dl_proc_open(struct inode *inode, struct file *file) return ret; } -static struct file_operations dl_file_ops = { +static const struct file_operations dl_file_ops = { .owner = THIS_MODULE, .open = dl_proc_open, .read = seq_read, diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c index f6ee9b4742..e73d8f546c 100644 --- a/net/netlink/af_netlink.c +++ b/net/netlink/af_netlink.c @@ -1713,7 +1713,7 @@ static int netlink_seq_open(struct inode *inode, struct file *file) return 0; } -static struct file_operations netlink_seq_fops = { +static const struct file_operations netlink_seq_fops = { .owner = THIS_MODULE, .open = netlink_seq_open, .read = seq_read, diff --git a/net/netrom/af_netrom.c b/net/netrom/af_netrom.c index 799b76806b..bf9837dd95 100644 --- a/net/netrom/af_netrom.c +++ b/net/netrom/af_netrom.c @@ -1335,7 +1335,7 @@ static int nr_info_open(struct inode *inode, struct file *file) return seq_open(file, &nr_info_seqops); } -static struct file_operations nr_info_fops = { +static const struct file_operations nr_info_fops = { .owner = THIS_MODULE, .open = nr_info_open, .read = seq_read, diff --git a/net/netrom/nr_route.c b/net/netrom/nr_route.c index e9909aeb43..c2fbac9c69 100644 --- a/net/netrom/nr_route.c +++ b/net/netrom/nr_route.c @@ -934,7 +934,7 @@ static int nr_node_info_open(struct inode *inode, struct file *file) return seq_open(file, &nr_node_seqops); } -struct file_operations nr_nodes_fops = { +const struct file_operations nr_nodes_fops = { .owner = THIS_MODULE, .open = nr_node_info_open, .read = seq_read, @@ -1018,7 +1018,7 @@ static int nr_neigh_info_open(struct inode *inode, struct file *file) return seq_open(file, &nr_neigh_seqops); } -struct file_operations nr_neigh_fops = { +const struct file_operations nr_neigh_fops = { .owner = THIS_MODULE, .open = nr_neigh_info_open, .read = seq_read, diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c index 444550917b..15ff7b15e2 100644 --- a/net/packet/af_packet.c +++ b/net/packet/af_packet.c @@ -1952,7 +1952,7 @@ static int packet_seq_open(struct inode *inode, struct file *file) return seq_open(file, &packet_seq_ops); } -static struct file_operations packet_seq_fops = { +static const struct file_operations packet_seq_fops = { .owner = THIS_MODULE, .open = packet_seq_open, .read = seq_read, diff --git a/net/rose/af_rose.c b/net/rose/af_rose.c index 7a81a8ee85..8c34f1ca6c 100644 --- a/net/rose/af_rose.c +++ b/net/rose/af_rose.c @@ -1440,7 +1440,7 @@ static int rose_info_open(struct inode *inode, struct file *file) return seq_open(file, &rose_info_seqops); } -static struct file_operations rose_info_fops = { +static const struct file_operations rose_info_fops = { .owner = THIS_MODULE, .open = rose_info_open, .read = seq_read, diff --git a/net/rose/rose_route.c b/net/rose/rose_route.c index 0dcca4289e..1ddf7f5fa6 100644 --- a/net/rose/rose_route.c +++ b/net/rose/rose_route.c @@ -1129,7 +1129,7 @@ static int rose_nodes_open(struct inode *inode, struct file *file) return seq_open(file, &rose_node_seqops); } -struct file_operations rose_nodes_fops = { +const struct file_operations rose_nodes_fops = { .owner = THIS_MODULE, .open = rose_nodes_open, .read = seq_read, @@ -1211,7 +1211,7 @@ static int rose_neigh_open(struct inode *inode, struct file *file) return seq_open(file, &rose_neigh_seqops); } -struct file_operations rose_neigh_fops = { +const struct file_operations rose_neigh_fops = { .owner = THIS_MODULE, .open = rose_neigh_open, .read = seq_read, @@ -1295,7 +1295,7 @@ static int rose_route_open(struct inode *inode, struct file *file) return seq_open(file, &rose_route_seqops); } -struct file_operations rose_routes_fops = { +const struct file_operations rose_routes_fops = { .owner = THIS_MODULE, .open = rose_route_open, .read = seq_read, diff --git a/net/rxrpc/proc.c b/net/rxrpc/proc.c index 29975d99d8..8551c879e4 100644 --- a/net/rxrpc/proc.c +++ b/net/rxrpc/proc.c @@ -37,7 +37,7 @@ static struct seq_operations rxrpc_proc_transports_ops = { .show = rxrpc_proc_transports_show, }; -static struct file_operations rxrpc_proc_transports_fops = { +static const struct file_operations rxrpc_proc_transports_fops = { .open = rxrpc_proc_transports_open, .read = seq_read, .llseek = seq_lseek, @@ -57,7 +57,7 @@ static struct seq_operations rxrpc_proc_peers_ops = { .show = rxrpc_proc_peers_show, }; -static struct file_operations rxrpc_proc_peers_fops = { +static const struct file_operations rxrpc_proc_peers_fops = { .open = rxrpc_proc_peers_open, .read = seq_read, .llseek = seq_lseek, @@ -77,7 +77,7 @@ static struct seq_operations rxrpc_proc_conns_ops = { .show = rxrpc_proc_conns_show, }; -static struct file_operations rxrpc_proc_conns_fops = { +static const struct file_operations rxrpc_proc_conns_fops = { .open = rxrpc_proc_conns_open, .read = seq_read, .llseek = seq_lseek, @@ -97,7 +97,7 @@ static struct seq_operations rxrpc_proc_calls_ops = { .show = rxrpc_proc_calls_show, }; -static struct file_operations rxrpc_proc_calls_fops = { +static const struct file_operations rxrpc_proc_calls_fops = { .open = rxrpc_proc_calls_open, .read = seq_read, .llseek = seq_lseek, diff --git a/net/sched/sch_api.c b/net/sched/sch_api.c index 60b92fcdc8..4158127bc2 100644 --- a/net/sched/sch_api.c +++ b/net/sched/sch_api.c @@ -1194,7 +1194,7 @@ static int psched_open(struct inode *inode, struct file *file) return single_open(file, psched_show, PDE(inode)->data); } -static struct file_operations psched_fops = { +static const struct file_operations psched_fops = { .owner = THIS_MODULE, .open = psched_open, .read = seq_read, diff --git a/net/sctp/proc.c b/net/sctp/proc.c index e93fc1cc43..2f12bf2d8d 100644 --- a/net/sctp/proc.c +++ b/net/sctp/proc.c @@ -114,7 +114,7 @@ static int sctp_snmp_seq_open(struct inode *inode, struct file *file) return single_open(file, sctp_snmp_seq_show, NULL); } -static struct file_operations sctp_snmp_seq_fops = { +static const struct file_operations sctp_snmp_seq_fops = { .owner = THIS_MODULE, .open = sctp_snmp_seq_open, .read = seq_read, @@ -264,7 +264,7 @@ static int sctp_eps_seq_open(struct inode *inode, struct file *file) return seq_open(file, &sctp_eps_ops); } -static struct file_operations sctp_eps_seq_fops = { +static const struct file_operations sctp_eps_seq_fops = { .open = sctp_eps_seq_open, .read = seq_read, .llseek = seq_lseek, @@ -374,7 +374,7 @@ static int sctp_assocs_seq_open(struct inode *inode, struct file *file) return seq_open(file, &sctp_assoc_ops); } -static struct file_operations sctp_assocs_seq_fops = { +static const struct file_operations sctp_assocs_seq_fops = { .open = sctp_assocs_seq_open, .read = seq_read, .llseek = seq_lseek, diff --git a/net/socket.c b/net/socket.c index a92f595802..0778c54424 100644 --- a/net/socket.c +++ b/net/socket.c @@ -117,7 +117,7 @@ static ssize_t sock_sendpage(struct file *file, struct page *page, * in the operation structures but are done directly via the socketcall() multiplexor. */ -static struct file_operations socket_file_ops = { +static const struct file_operations socket_file_ops = { .owner = THIS_MODULE, .llseek = no_llseek, .aio_read = sock_aio_read, diff --git a/net/sunrpc/cache.c b/net/sunrpc/cache.c index c80df45580..8612044b91 100644 --- a/net/sunrpc/cache.c +++ b/net/sunrpc/cache.c @@ -282,9 +282,9 @@ static DEFINE_SPINLOCK(cache_list_lock); static struct cache_detail *current_detail; static int current_index; -static struct file_operations cache_file_operations; -static struct file_operations content_file_operations; -static struct file_operations cache_flush_operations; +static const struct file_operations cache_file_operations; +static const struct file_operations content_file_operations; +static const struct file_operations cache_flush_operations; static void do_cache_clean(struct work_struct *work); static DECLARE_DELAYED_WORK(cache_cleaner, do_cache_clean); @@ -887,7 +887,7 @@ cache_release(struct inode *inode, struct file *filp) -static struct file_operations cache_file_operations = { +static const struct file_operations cache_file_operations = { .owner = THIS_MODULE, .llseek = no_llseek, .read = cache_read, @@ -1245,7 +1245,7 @@ static int content_release(struct inode *inode, struct file *file) return seq_release(inode, file); } -static struct file_operations content_file_operations = { +static const struct file_operations content_file_operations = { .open = content_open, .read = seq_read, .llseek = seq_lseek, @@ -1297,7 +1297,7 @@ static ssize_t write_flush(struct file * file, const char __user * buf, return count; } -static struct file_operations cache_flush_operations = { +static const struct file_operations cache_flush_operations = { .open = nonseekable_open, .read = read_flush, .write = write_flush, diff --git a/net/sunrpc/rpc_pipe.c b/net/sunrpc/rpc_pipe.c index 89273d35e0..e1fad77a22 100644 --- a/net/sunrpc/rpc_pipe.c +++ b/net/sunrpc/rpc_pipe.c @@ -309,7 +309,7 @@ rpc_pipe_ioctl(struct inode *ino, struct file *filp, } } -static struct file_operations rpc_pipe_fops = { +static const struct file_operations rpc_pipe_fops = { .owner = THIS_MODULE, .llseek = no_llseek, .read = rpc_pipe_read, @@ -366,7 +366,7 @@ rpc_info_release(struct inode *inode, struct file *file) return single_release(inode, file); } -static struct file_operations rpc_info_operations = { +static const struct file_operations rpc_info_operations = { .owner = THIS_MODULE, .open = rpc_info_open, .read = seq_read, diff --git a/net/sunrpc/stats.c b/net/sunrpc/stats.c index bd98124c3a..044d9484bb 100644 --- a/net/sunrpc/stats.c +++ b/net/sunrpc/stats.c @@ -66,7 +66,7 @@ static int rpc_proc_open(struct inode *inode, struct file *file) return single_open(file, rpc_proc_show, PDE(inode)->data); } -static struct file_operations rpc_proc_fops = { +static const struct file_operations rpc_proc_fops = { .owner = THIS_MODULE, .open = rpc_proc_open, .read = seq_read, diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c index ac9478d0ca..606971645b 100644 --- a/net/unix/af_unix.c +++ b/net/unix/af_unix.c @@ -2040,7 +2040,7 @@ out_kfree: goto out; } -static struct file_operations unix_seq_fops = { +static const struct file_operations unix_seq_fops = { .owner = THIS_MODULE, .open = unix_seq_open, .read = seq_read, diff --git a/net/wanrouter/wanproc.c b/net/wanrouter/wanproc.c index abce828736..205106521e 100644 --- a/net/wanrouter/wanproc.c +++ b/net/wanrouter/wanproc.c @@ -188,7 +188,7 @@ static int status_open(struct inode *inode, struct file *file) return seq_open(file, &status_op); } -static struct file_operations config_fops = { +static const struct file_operations config_fops = { .owner = THIS_MODULE, .open = config_open, .read = seq_read, @@ -196,7 +196,7 @@ static struct file_operations config_fops = { .release = seq_release, }; -static struct file_operations status_fops = { +static const struct file_operations status_fops = { .owner = THIS_MODULE, .open = status_open, .read = seq_read, @@ -271,7 +271,7 @@ static int wandev_open(struct inode *inode, struct file *file) return single_open(file, wandev_show, PDE(inode)->data); } -static struct file_operations wandev_fops = { +static const struct file_operations wandev_fops = { .owner = THIS_MODULE, .open = wandev_open, .read = seq_read, diff --git a/net/x25/x25_proc.c b/net/x25/x25_proc.c index 3c9f1ba562..96001f0c64 100644 --- a/net/x25/x25_proc.c +++ b/net/x25/x25_proc.c @@ -270,7 +270,7 @@ static int x25_seq_forward_open(struct inode *inode, struct file *file) return seq_open(file, &x25_seq_forward_ops); } -static struct file_operations x25_seq_socket_fops = { +static const struct file_operations x25_seq_socket_fops = { .owner = THIS_MODULE, .open = x25_seq_socket_open, .read = seq_read, @@ -278,7 +278,7 @@ static struct file_operations x25_seq_socket_fops = { .release = seq_release, }; -static struct file_operations x25_seq_route_fops = { +static const struct file_operations x25_seq_route_fops = { .owner = THIS_MODULE, .open = x25_seq_route_open, .read = seq_read,