static int lockd_up_net(struct svc_serv *serv, struct net *net) { struct lockd_net *ln = net_generic(net, lockd_net_id); int error; if (ln->nlmsvc_users++) return 0; error = svc_bind(serv, net); if (error) goto err_bind; error = make_socks(serv, net); if (error < 0) goto err_socks; set_grace_period(net); dprintk("lockd_up_net: per-net data created; net=%p\n", net); return 0; err_socks: svc_rpcb_cleanup(serv, net); err_bind: ln->nlmsvc_users--; return error; }
static void nfsd_last_thread(struct svc_serv *serv, struct net *net) { nfsd_shutdown(net); svc_rpcb_cleanup(serv, net); printk(KERN_WARNING "nfsd: last server has exited, flushing export " "cache\n"); nfsd_export_flush(); }
static void nfsd_last_thread(struct svc_serv *serv) { /* When last nfsd thread exits we need to do some clean-up */ nfsd_serv = NULL; nfsd_shutdown(); svc_rpcb_cleanup(serv); printk(KERN_WARNING "nfsd: last server has exited, flushing export " "cache\n"); nfsd_export_flush(); }
static void nfsd_last_thread(struct svc_serv *serv, struct net *net) { struct nfsd_net *nn = net_generic(net, nfsd_net_id); /* * write_ports can create the server without actually starting * any threads--if we get shut down before any threads are * started, then nfsd_last_thread will be run before any of this * other initialization has been done. */ if (!nn->nfsd_net_up) return; nfsd_shutdown_net(net); svc_rpcb_cleanup(serv, net); printk(KERN_WARNING "nfsd: last server has exited, flushing export " "cache\n"); nfsd_export_flush(net); }
static int lockd_up_net(struct svc_serv *serv, struct net *net) { struct lockd_net *ln = net_generic(net, lockd_net_id); int error; if (ln->nlmsvc_users) return 0; error = svc_rpcb_setup(serv, net); if (error) goto err_rpcb; error = make_socks(serv, net); if (error < 0) goto err_socks; return 0; err_socks: svc_rpcb_cleanup(serv, net); err_rpcb: return error; }