/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>
 
 }
 
 static const struct file_operations ip_vs_app_fops = {
-       .owner   = THIS_MODULE,
        .open    = ip_vs_app_open,
        .read    = seq_read,
        .llseek  = seq_lseek,
 
 }
 
 static const struct file_operations ip_vs_conn_fops = {
-       .owner   = THIS_MODULE,
        .open    = ip_vs_conn_open,
        .read    = seq_read,
        .llseek  = seq_lseek,
 }
 
 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,
 
 }
 
 static const struct file_operations ip_vs_info_fops = {
-       .owner   = THIS_MODULE,
        .open    = ip_vs_info_open,
        .read    = seq_read,
        .llseek  = seq_lseek,
 }
 
 static const struct file_operations ip_vs_stats_fops = {
-       .owner = THIS_MODULE,
        .open = ip_vs_stats_seq_open,
        .read = seq_read,
        .llseek = seq_lseek,
 }
 
 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,
 
 }
 
 static const struct file_operations exp_file_ops = {
-       .owner   = THIS_MODULE,
        .open    = exp_open,
        .read    = seq_read,
        .llseek  = seq_lseek,
 
 }
 
 static const struct file_operations ct_file_ops = {
-       .owner   = THIS_MODULE,
        .open    = ct_open,
        .read    = seq_read,
        .llseek  = seq_lseek,
 }
 
 static const struct file_operations ct_cpu_seq_fops = {
-       .owner   = THIS_MODULE,
        .open    = ct_cpu_seq_open,
        .read    = seq_read,
        .llseek  = seq_lseek,
 
 }
 
 static const struct file_operations nflog_file_ops = {
-       .owner   = THIS_MODULE,
        .open    = nflog_open,
        .read    = seq_read,
        .llseek  = seq_lseek,
 
 }
 
 static const struct file_operations synproxy_cpu_seq_fops = {
-       .owner          = THIS_MODULE,
        .open           = synproxy_cpu_seq_open,
        .read           = seq_read,
        .llseek         = seq_lseek,
 
 }
 
 static const struct file_operations nful_file_ops = {
-       .owner   = THIS_MODULE,
        .open    = nful_open,
        .read    = seq_read,
        .llseek  = seq_lseek,
 
 }
 
 static const struct file_operations nfqnl_file_ops = {
-       .owner   = THIS_MODULE,
        .open    = nfqnl_open,
        .read    = seq_read,
        .llseek  = seq_lseek,
 
 }
 
 static const struct file_operations xt_table_ops = {
-       .owner   = THIS_MODULE,
        .open    = xt_table_open,
        .read    = seq_read,
        .llseek  = seq_lseek,
 }
 
 static const struct file_operations xt_match_ops = {
-       .owner   = THIS_MODULE,
        .open    = xt_match_open,
        .read    = seq_read,
        .llseek  = seq_lseek,
 }
 
 static const struct file_operations xt_target_ops = {
-       .owner   = THIS_MODULE,
        .open    = xt_target_open,
        .read    = seq_read,
        .llseek  = seq_lseek,
 
 }
 
 static const struct file_operations dl_file_ops_v2 = {
-       .owner   = THIS_MODULE,
        .open    = dl_proc_open_v2,
        .read    = seq_read,
        .llseek  = seq_lseek,
 };
 
 static const struct file_operations dl_file_ops_v1 = {
-       .owner   = THIS_MODULE,
        .open    = dl_proc_open_v1,
        .read    = seq_read,
        .llseek  = seq_lseek,
 };
 
 static const struct file_operations dl_file_ops = {
-       .owner   = THIS_MODULE,
        .open    = dl_proc_open,
        .read    = seq_read,
        .llseek  = seq_lseek,