From 750300aedf0bd59b704e222f82ff1d114d2b5da7 Mon Sep 17 00:00:00 2001 From: Kamen Mazdrashki Date: Fri, 10 Sep 2010 01:58:07 +0300 Subject: s4-drs-fsmo: try to dispatch ops in queue as soon as possible In most cases this will transfer of schema master role to look like a synchronous operation. --- source4/dsdb/repl/drepl_fsmo.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'source4') diff --git a/source4/dsdb/repl/drepl_fsmo.c b/source4/dsdb/repl/drepl_fsmo.c index 8719967d16..941ad6771b 100644 --- a/source4/dsdb/repl/drepl_fsmo.c +++ b/source4/dsdb/repl/drepl_fsmo.c @@ -126,12 +126,20 @@ WERROR dreplsrv_fsmo_role_check(struct dreplsrv_service *service, return WERR_DS_DRA_INTERNAL_ERROR; } if (!fsmo_master_cmp(ntds_dn, fsmo_role_dn)) { - return drepl_request_extended_op(service, + WERROR werr; + werr = drepl_request_extended_op(service, role_owner_dn, fsmo_role_dn, DRSUAPI_EXOP_FSMO_REQ_ROLE, alloc_pool, drepl_role_callback); + if (W_ERROR_IS_OK(werr)) { + dreplsrv_run_pending_ops(service); + } else { + DEBUG(0,("%s: drepl_request_extended_op() failed with %s", + __FUNCTION__, win_errstr(werr))); + } + return werr; } break; case DREPL_PDC_MASTER: -- cgit