diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2013-04-05 01:16:06 +0200 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2013-04-09 20:13:36 +0200 |
commit | 4d006263d3d61413e63784a454b6e3310bd8e6ee (patch) | |
tree | 296c5d8c50ec3ddd32ca196159158c3f2431864a /net/bluetooth | |
parent | bluetooth: kill unused 'module' argument of bt_procfs_init() (diff) | |
download | linux-4d006263d3d61413e63784a454b6e3310bd8e6ee.tar.xz linux-4d006263d3d61413e63784a454b6e3310bd8e6ee.zip |
bluetooth: fix race in bt_procfs_init()
use proc_create_data() rather than set ->data after the file has
been created
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'net/bluetooth')
-rw-r--r-- | net/bluetooth/af_bluetooth.c | 8 |
1 files changed, 1 insertions, 7 deletions
diff --git a/net/bluetooth/af_bluetooth.c b/net/bluetooth/af_bluetooth.c index 68e6fefb3655..438a8c56938e 100644 --- a/net/bluetooth/af_bluetooth.c +++ b/net/bluetooth/af_bluetooth.c @@ -638,16 +638,10 @@ int bt_procfs_init(struct net *net, const char *name, struct bt_sock_list* sk_list, int (* seq_show)(struct seq_file *, void *)) { - struct proc_dir_entry * pde; - sk_list->custom_seq_show = seq_show; - pde = proc_create(name, 0, net->proc_net, &bt_fops); - if (!pde) + if (!proc_create_data(name, 0, net->proc_net, &bt_fops, sk_list)) return -ENOMEM; - - pde->data = sk_list; - return 0; } |