From: wangdi Date: Mon, 31 Jul 2006 09:06:13 +0000 (+0000) Subject: Branch: b_new_cmd X-Git-Tag: v1_8_0_110~486^2~1313 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=b32279473f04bafc5e211de25e35db8100a92558;p=fs%2Flustre-release.git Branch: b_new_cmd add ptlrpc setattr service --- diff --git a/lustre/mdt/mdt_handler.c b/lustre/mdt/mdt_handler.c index 727c2a5..939a0abe 100644 --- a/lustre/mdt/mdt_handler.c +++ b/lustre/mdt/mdt_handler.c @@ -2006,6 +2006,10 @@ static void mdt_stop_ptlrpc_service(struct mdt_device *m) ptlrpc_unregister_service(m->mdt_readpage_service); m->mdt_readpage_service = NULL; } + if (m->mdt_setattr_service != NULL) { + ptlrpc_unregister_service(m->mdt_setattr_service); + m->mdt_setattr_service = NULL; + } } static int mdt_start_ptlrpc_service(struct mdt_device *m) @@ -2074,6 +2078,37 @@ static int mdt_start_ptlrpc_service(struct mdt_device *m) rc = ptlrpc_start_threads(NULL, m->mdt_readpage_service, "mdt_rdpg"); + /* + * setattr service configuration. + */ + conf = (typeof(conf)) { + .psc_nbufs = MDS_NBUFS, + .psc_bufsize = MDS_BUFSIZE, + .psc_max_req_size = MDS_MAXREQSIZE, + .psc_max_reply_size = MDS_MAXREPSIZE, + .psc_req_portal = MDS_SETATTR_PORTAL, + .psc_rep_portal = MDC_REPLY_PORTAL, + .psc_watchdog_timeout = MDT_SERVICE_WATCHDOG_TIMEOUT, + .psc_num_threads = min(max(mdt_num_threads, MDT_MIN_THREADS), + MDT_MAX_THREADS), + .psc_ctx_tags = LCT_MD_THREAD + }; + + m->mdt_setattr_service = + ptlrpc_init_svc_conf(&conf, mdt_handle, + LUSTRE_MDT0_NAME "_setattr", + m->mdt_md_dev.md_lu_dev.ld_proc_entry, + NULL); + + if (!m->mdt_setattr_service) { + CERROR("failed to start setattr service\n"); + GOTO(err_mdt_svc, rc = -ENOMEM); + } + + rc = ptlrpc_start_threads(NULL, m->mdt_setattr_service, "mdt_attr"); + if (rc) + GOTO(err_mdt_svc, rc); + EXIT; err_mdt_svc: if (rc) diff --git a/lustre/mdt/mdt_internal.h b/lustre/mdt/mdt_internal.h index 9380ff2..df6b9a6 100644 --- a/lustre/mdt/mdt_internal.h +++ b/lustre/mdt/mdt_internal.h @@ -102,6 +102,7 @@ struct mdt_device { struct md_device mdt_md_dev; struct ptlrpc_service *mdt_service; struct ptlrpc_service *mdt_readpage_service; + struct ptlrpc_service *mdt_setattr_service; /* DLM name-space for meta-data locks maintained by this server */ struct ldlm_namespace *mdt_namespace; /* ptlrpc handle for MDS->client connections (for lock ASTs). */