@@ -210,56 +210,34 @@ static const struct seq_operations atalk_seq_socket_ops = {
210210 .show = atalk_seq_socket_show ,
211211};
212212
213- static struct proc_dir_entry * atalk_proc_dir ;
214-
215213int __init atalk_proc_init (void )
216214{
217- struct proc_dir_entry * p ;
218- int rc = - ENOMEM ;
215+ if (! proc_mkdir ( "atalk" , init_net . proc_net ))
216+ return - ENOMEM ;
219217
220- atalk_proc_dir = proc_mkdir ( "atalk" , init_net .proc_net );
221- if (! atalk_proc_dir )
218+ if (! proc_create_seq ( "atalk/interface " , 0444 , init_net .proc_net ,
219+ & atalk_seq_interface_ops ) )
222220 goto out ;
223221
224- p = proc_create_seq ("interface" , 0444 , atalk_proc_dir ,
225- & atalk_seq_interface_ops );
226- if (!p )
227- goto out_interface ;
228-
229- p = proc_create_seq ("route" , 0444 , atalk_proc_dir ,
230- & atalk_seq_route_ops );
231- if (!p )
232- goto out_route ;
222+ if (!proc_create_seq ("atalk/route" , 0444 , init_net .proc_net ,
223+ & atalk_seq_route_ops ))
224+ goto out ;
233225
234- p = proc_create_seq ("socket" , 0444 , atalk_proc_dir ,
235- & atalk_seq_socket_ops );
236- if (!p )
237- goto out_socket ;
226+ if (!proc_create_seq ("atalk/socket" , 0444 , init_net .proc_net ,
227+ & atalk_seq_socket_ops ))
228+ goto out ;
238229
239- p = proc_create_seq_private ("arp" , 0444 , atalk_proc_dir , & aarp_seq_ops ,
240- sizeof ( struct aarp_iter_state ), NULL );
241- if (! p )
242- goto out_arp ;
230+ if (! proc_create_seq_private ("atalk/ arp" , 0444 , init_net . proc_net ,
231+ & aarp_seq_ops ,
232+ sizeof ( struct aarp_iter_state ), NULL ) )
233+ goto out ;
243234
244- rc = 0 ;
245235out :
246- return rc ;
247- out_arp :
248- remove_proc_entry ("socket" , atalk_proc_dir );
249- out_socket :
250- remove_proc_entry ("route" , atalk_proc_dir );
251- out_route :
252- remove_proc_entry ("interface" , atalk_proc_dir );
253- out_interface :
254- remove_proc_entry ("atalk" , init_net .proc_net );
255- goto out ;
236+ remove_proc_subtree ("atalk" , init_net .proc_net );
237+ return - ENOMEM ;
256238}
257239
258240void __exit atalk_proc_exit (void )
259241{
260- remove_proc_entry ("interface" , atalk_proc_dir );
261- remove_proc_entry ("route" , atalk_proc_dir );
262- remove_proc_entry ("socket" , atalk_proc_dir );
263- remove_proc_entry ("arp" , atalk_proc_dir );
264- remove_proc_entry ("atalk" , init_net .proc_net );
242+ remove_proc_subtree ("atalk" , init_net .proc_net );
265243}
0 commit comments