diff options
Diffstat (limited to 'net/dccp/probe.c')
| -rw-r--r-- | net/dccp/probe.c | 15 | 
1 files changed, 10 insertions, 5 deletions
diff --git a/net/dccp/probe.c b/net/dccp/probe.c index 33d0e6297c2..595ddf0459d 100644 --- a/net/dccp/probe.c +++ b/net/dccp/probe.c @@ -160,18 +160,23 @@ static __init int dccpprobe_init(void)  	spin_lock_init(&dccpw.lock);  	if (kfifo_alloc(&dccpw.fifo, bufsize, GFP_KERNEL))  		return ret; -	if (!proc_net_fops_create(&init_net, procname, S_IRUSR, &dccpprobe_fops)) +	if (!proc_create(procname, S_IRUSR, init_net.proc_net, &dccpprobe_fops))  		goto err0; -	try_then_request_module((ret = register_jprobe(&dccp_send_probe)) == 0, -				"dccp"); +	ret = register_jprobe(&dccp_send_probe); +	if (ret) { +		ret = request_module("dccp"); +		if (!ret) +			ret = register_jprobe(&dccp_send_probe); +	} +  	if (ret)  		goto err1;  	pr_info("DCCP watch registered (port=%d)\n", port);  	return 0;  err1: -	proc_net_remove(&init_net, procname); +	remove_proc_entry(procname, init_net.proc_net);  err0:  	kfifo_free(&dccpw.fifo);  	return ret; @@ -181,7 +186,7 @@ module_init(dccpprobe_init);  static __exit void dccpprobe_exit(void)  {  	kfifo_free(&dccpw.fifo); -	proc_net_remove(&init_net, procname); +	remove_proc_entry(procname, init_net.proc_net);  	unregister_jprobe(&dccp_send_probe);  }  | 
