static int nfsd_startup(unsigned short port, int nrservs) { int ret; if (nfsd_up) return 0; /* * Readahead param cache - will no-op if it already exists. * (Note therefore results will be suboptimal if number of * threads is modified after nfsd start.) */ ret = nfsd_racache_init(2*nrservs); if (ret) return ret; ret = nfsd_init_socks(port); if (ret) goto out_racache; ret = lockd_up(); if (ret) goto out_racache; ret = nfs4_state_start(); if (ret) goto out_lockd; nfsd_up = true; return 0; out_lockd: lockd_down(); out_racache: nfsd_racache_shutdown(); return ret; }
static int nfsd_startup_generic(int nrservs) { int ret; if (nfsd_users++) return 0; /* * Readahead param cache - will no-op if it already exists. * (Note therefore results will be suboptimal if number of * threads is modified after nfsd start.) */ ret = nfsd_racache_init(2*nrservs); if (ret) goto dec_users; ret = nfs4_state_start(); if (ret) goto out_racache; return 0; out_racache: nfsd_racache_shutdown(); dec_users: nfsd_users--; return ret; }
static int nfsd_startup(unsigned short port, int nrservs) { int ret; if (nfsd_up) return 0; /* */ ret = nfsd_racache_init(2*nrservs); if (ret) return ret; ret = nfsd_init_socks(port); if (ret) goto out_racache; ret = lockd_up(); if (ret) goto out_racache; ret = nfs4_state_start(); if (ret) goto out_lockd; nfsd_up = true; return 0; out_lockd: lockd_down(); out_racache: nfsd_racache_shutdown(); return ret; }