mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 11:11:45 -04:00
proc: introduce proc_create_net{,_data}
Variants of proc_create{,_data} that directly take a struct seq_operations
and deal with network namespaces in ->open and ->release. All callers of
proc_create + seq_open_net converted over, and seq_{open,release}_net are
removed entirely.
Signed-off-by: Christoph Hellwig <[email protected]>
This commit is contained in:
parent
a2dcdee374
commit
c350637227
57 changed files with 202 additions and 939 deletions
|
|
@ -320,7 +320,8 @@ static int __net_init phonet_init_net(struct net *net)
|
|||
{
|
||||
struct phonet_net *pnn = phonet_pernet(net);
|
||||
|
||||
if (!proc_create("phonet", 0, net->proc_net, &pn_sock_seq_fops))
|
||||
if (!proc_create_net("phonet", 0, net->proc_net, &pn_sock_seq_ops,
|
||||
sizeof(struct seq_net_private)))
|
||||
return -ENOMEM;
|
||||
|
||||
INIT_LIST_HEAD(&pnn->pndevs.list);
|
||||
|
|
@ -351,7 +352,8 @@ int __init phonet_device_init(void)
|
|||
if (err)
|
||||
return err;
|
||||
|
||||
proc_create("pnresource", 0, init_net.proc_net, &pn_res_seq_fops);
|
||||
proc_create_net("pnresource", 0, init_net.proc_net, &pn_res_seq_ops,
|
||||
sizeof(struct seq_net_private));
|
||||
register_netdevice_notifier(&phonet_device_notifier);
|
||||
err = phonet_netlink_register();
|
||||
if (err)
|
||||
|
|
|
|||
|
|
@ -620,25 +620,12 @@ static int pn_sock_seq_show(struct seq_file *seq, void *v)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static const struct seq_operations pn_sock_seq_ops = {
|
||||
const struct seq_operations pn_sock_seq_ops = {
|
||||
.start = pn_sock_seq_start,
|
||||
.next = pn_sock_seq_next,
|
||||
.stop = pn_sock_seq_stop,
|
||||
.show = pn_sock_seq_show,
|
||||
};
|
||||
|
||||
static int pn_sock_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return seq_open_net(inode, file, &pn_sock_seq_ops,
|
||||
sizeof(struct seq_net_private));
|
||||
}
|
||||
|
||||
const struct file_operations pn_sock_seq_fops = {
|
||||
.open = pn_sock_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = seq_release_net,
|
||||
};
|
||||
#endif
|
||||
|
||||
static struct {
|
||||
|
|
@ -802,23 +789,10 @@ static int pn_res_seq_show(struct seq_file *seq, void *v)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static const struct seq_operations pn_res_seq_ops = {
|
||||
const struct seq_operations pn_res_seq_ops = {
|
||||
.start = pn_res_seq_start,
|
||||
.next = pn_res_seq_next,
|
||||
.stop = pn_res_seq_stop,
|
||||
.show = pn_res_seq_show,
|
||||
};
|
||||
|
||||
static int pn_res_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return seq_open_net(inode, file, &pn_res_seq_ops,
|
||||
sizeof(struct seq_net_private));
|
||||
}
|
||||
|
||||
const struct file_operations pn_res_seq_fops = {
|
||||
.open = pn_res_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = seq_release_net,
|
||||
};
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Reference in a new issue