diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2013-04-04 19:16:06 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2013-04-09 14:13:36 -0400 |
commit | 4d006263d3d61413e63784a454b6e3310bd8e6ee (patch) | |
tree | 296c5d8c50ec3ddd32ca196159158c3f2431864a /net/bluetooth | |
parent | b03166152f6da91cec8b66837b309dd3923ea536 (diff) | |
download | op-kernel-dev-4d006263d3d61413e63784a454b6e3310bd8e6ee.zip op-kernel-dev-4d006263d3d61413e63784a454b6e3310bd8e6ee.tar.gz |
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 68e6fef..438a8c5 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; } |