netfilter: delete /proc THIS_MODULE references
authorAlexey Dobriyan <adobriyan@gmail.com>
Mon, 15 Jan 2018 21:45:32 +0000 (00:45 +0300)
committerPablo Neira Ayuso <pablo@netfilter.org>
Fri, 19 Jan 2018 13:10:53 +0000 (14:10 +0100)
/proc has been ignoring struct file_operations::owner field for 10 years.
Specifically, it started with commit 786d7e1612f0b0adb6046f19b906609e4fe8b1ba
("Fix rmmod/read/write races in /proc entries"). Notice the chunk where
inode->i_fop is initialized with proxy struct file_operations for
regular files:

-               if (de->proc_fops)
-                       inode->i_fop = de->proc_fops;
+               if (de->proc_fops) {
+                       if (S_ISREG(inode->i_mode))
+                               inode->i_fop = &proc_reg_file_ops;
+                       else
+                               inode->i_fop = de->proc_fops;
+               }

VFS stopped pinning module at this point.

# ipvs
Acked-by: Julian Anastasov <ja@ssi.bg>
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Acked-by: Simon Horman <horms+renesas@verge.net.au>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
net/netfilter/ipvs/ip_vs_app.c
net/netfilter/ipvs/ip_vs_conn.c
net/netfilter/ipvs/ip_vs_ctl.c
net/netfilter/nf_conntrack_expect.c
net/netfilter/nf_conntrack_standalone.c
net/netfilter/nf_log.c
net/netfilter/nf_synproxy_core.c
net/netfilter/nfnetlink_log.c
net/netfilter/nfnetlink_queue.c
net/netfilter/x_tables.c
net/netfilter/xt_hashlimit.c

index 299edc6add5a6ac2c729e4caa6f9550b1cebe3df..1c98c907bc6354108305e55b1be50d7e6b74ca4e 100644 (file)
@@ -595,7 +595,6 @@ static int ip_vs_app_open(struct inode *inode, struct file *file)
 }
 
 static const struct file_operations ip_vs_app_fops = {
-       .owner   = THIS_MODULE,
        .open    = ip_vs_app_open,
        .read    = seq_read,
        .llseek  = seq_lseek,
index f489b8db2406c991815f5ff5100a81382b55a803..370abbf6f4217362ffe53e766964015776cc976f 100644 (file)
@@ -1143,7 +1143,6 @@ static int ip_vs_conn_open(struct inode *inode, struct file *file)
 }
 
 static const struct file_operations ip_vs_conn_fops = {
-       .owner   = THIS_MODULE,
        .open    = ip_vs_conn_open,
        .read    = seq_read,
        .llseek  = seq_lseek,
@@ -1221,7 +1220,6 @@ static int ip_vs_conn_sync_open(struct inode *inode, struct file *file)
 }
 
 static const struct file_operations ip_vs_conn_sync_fops = {
-       .owner   = THIS_MODULE,
        .open    = ip_vs_conn_sync_open,
        .read    = seq_read,
        .llseek  = seq_lseek,
index fff213eacf2aeda24f15d07eac1b1d4f64df1e34..5ebde4b15810c5c219ad64c1bb0b6378a38d468c 100644 (file)
@@ -2116,7 +2116,6 @@ static int ip_vs_info_open(struct inode *inode, struct file *file)
 }
 
 static const struct file_operations ip_vs_info_fops = {
-       .owner   = THIS_MODULE,
        .open    = ip_vs_info_open,
        .read    = seq_read,
        .llseek  = seq_lseek,
@@ -2161,7 +2160,6 @@ static int ip_vs_stats_seq_open(struct inode *inode, struct file *file)
 }
 
 static const struct file_operations ip_vs_stats_fops = {
-       .owner = THIS_MODULE,
        .open = ip_vs_stats_seq_open,
        .read = seq_read,
        .llseek = seq_lseek,
@@ -2230,7 +2228,6 @@ static int ip_vs_stats_percpu_seq_open(struct inode *inode, struct file *file)
 }
 
 static const struct file_operations ip_vs_stats_percpu_fops = {
-       .owner = THIS_MODULE,
        .open = ip_vs_stats_percpu_seq_open,
        .read = seq_read,
        .llseek = seq_lseek,
index d6748a8a79c5666b11d963a8755df557d8d77e59..8ef21d9f9a00d960ff3f26396b1736cfb1898d36 100644 (file)
@@ -649,7 +649,6 @@ static int exp_open(struct inode *inode, struct file *file)
 }
 
 static const struct file_operations exp_file_ops = {
-       .owner   = THIS_MODULE,
        .open    = exp_open,
        .read    = seq_read,
        .llseek  = seq_lseek,
index 46d32baad095f3c444212d9f9db596aa6edee629..9123fdec5e14a25dac693940bc20fce4c623fb86 100644 (file)
@@ -382,7 +382,6 @@ static int ct_open(struct inode *inode, struct file *file)
 }
 
 static const struct file_operations ct_file_ops = {
-       .owner   = THIS_MODULE,
        .open    = ct_open,
        .read    = seq_read,
        .llseek  = seq_lseek,
@@ -475,7 +474,6 @@ static int ct_cpu_seq_open(struct inode *inode, struct file *file)
 }
 
 static const struct file_operations ct_cpu_seq_fops = {
-       .owner   = THIS_MODULE,
        .open    = ct_cpu_seq_open,
        .read    = seq_read,
        .llseek  = seq_lseek,
index 8bb152a7cca499d8e9b349dcd9fe0693d6599fbf..c2c1b16b75388516f7f455e4c389d8b1f85fdbce 100644 (file)
@@ -402,7 +402,6 @@ static int nflog_open(struct inode *inode, struct file *file)
 }
 
 static const struct file_operations nflog_file_ops = {
-       .owner   = THIS_MODULE,
        .open    = nflog_open,
        .read    = seq_read,
        .llseek  = seq_lseek,
index 49bd8bb16b1817e9e06ee64c889e78a923bfd375..92139a087260ae3d9fb03a2da4de375fc2f3a20c 100644 (file)
@@ -317,7 +317,6 @@ static int synproxy_cpu_seq_open(struct inode *inode, struct file *file)
 }
 
 static const struct file_operations synproxy_cpu_seq_fops = {
-       .owner          = THIS_MODULE,
        .open           = synproxy_cpu_seq_open,
        .read           = seq_read,
        .llseek         = seq_lseek,
index e955bec0acc6a949a32ac8d1e6ea383b31983c73..7b46aa4c478d35a0a94d2214ffcb2441c9f9c582 100644 (file)
@@ -1054,7 +1054,6 @@ static int nful_open(struct inode *inode, struct file *file)
 }
 
 static const struct file_operations nful_file_ops = {
-       .owner   = THIS_MODULE,
        .open    = nful_open,
        .read    = seq_read,
        .llseek  = seq_lseek,
index 2db35f2d553da29c40c2ff93b7acef85850e10a0..8bba23160a68fde04624eac306731ebf64fb8600 100644 (file)
@@ -1477,7 +1477,6 @@ static int nfqnl_open(struct inode *inode, struct file *file)
 }
 
 static const struct file_operations nfqnl_file_ops = {
-       .owner   = THIS_MODULE,
        .open    = nfqnl_open,
        .read    = seq_read,
        .llseek  = seq_lseek,
index 3c2548787d781a5d0c36ed3e38ebd6a481e254bd..0b56bf05c1693cab6dad951079958c38c2f04f08 100644 (file)
@@ -1362,7 +1362,6 @@ static int xt_table_open(struct inode *inode, struct file *file)
 }
 
 static const struct file_operations xt_table_ops = {
-       .owner   = THIS_MODULE,
        .open    = xt_table_open,
        .read    = seq_read,
        .llseek  = seq_lseek,
@@ -1498,7 +1497,6 @@ static int xt_match_open(struct inode *inode, struct file *file)
 }
 
 static const struct file_operations xt_match_ops = {
-       .owner   = THIS_MODULE,
        .open    = xt_match_open,
        .read    = seq_read,
        .llseek  = seq_lseek,
@@ -1551,7 +1549,6 @@ static int xt_target_open(struct inode *inode, struct file *file)
 }
 
 static const struct file_operations xt_target_ops = {
-       .owner   = THIS_MODULE,
        .open    = xt_target_open,
        .read    = seq_read,
        .llseek  = seq_lseek,
index ec51d9a9512da86493e0246af005bb763d47706f..ca6847403ca218c478d208080aab3e3c92a0a615 100644 (file)
@@ -1266,7 +1266,6 @@ static int dl_proc_open(struct inode *inode, struct file *file)
 }
 
 static const struct file_operations dl_file_ops_v2 = {
-       .owner   = THIS_MODULE,
        .open    = dl_proc_open_v2,
        .read    = seq_read,
        .llseek  = seq_lseek,
@@ -1274,7 +1273,6 @@ static const struct file_operations dl_file_ops_v2 = {
 };
 
 static const struct file_operations dl_file_ops_v1 = {
-       .owner   = THIS_MODULE,
        .open    = dl_proc_open_v1,
        .read    = seq_read,
        .llseek  = seq_lseek,
@@ -1282,7 +1280,6 @@ static const struct file_operations dl_file_ops_v1 = {
 };
 
 static const struct file_operations dl_file_ops = {
-       .owner   = THIS_MODULE,
        .open    = dl_proc_open,
        .read    = seq_read,
        .llseek  = seq_lseek,