From f027a40af4436bc4e383d4b5b19baee722ace86d Mon Sep 17 00:00:00 2001 From: johann Date: Mon, 9 Feb 2009 15:17:18 +0000 Subject: [PATCH] Branch b1_8 b=18374 i=shadow i=tappro Wait for mds_fl_synced to be set during recovery before allowing clients to reconnect. This is done to make sure that llog is properly set up. --- lustre/mds/mds_lov.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lustre/mds/mds_lov.c b/lustre/mds/mds_lov.c index d48f4cb..49108d8 100644 --- a/lustre/mds/mds_lov.c +++ b/lustre/mds/mds_lov.c @@ -55,6 +55,8 @@ #include "mds_internal.h" +static void mds_allow_cli(struct obd_device *obd, unsigned long flag); + static void mds_lov_dump_objids(const char *label, struct obd_device *obd) { struct mds_obd *mds = &obd->u.mds; @@ -918,6 +920,8 @@ int mds_iocontrol(unsigned int cmd, struct obd_export *exp, int len, case OBD_IOC_ABORT_RECOVERY: CERROR("aborting recovery for device %s\n", obd->obd_name); target_abort_recovery(obd); + /* obd_recovering has been changed */ + mds_allow_cli(obd, 0); RETURN(0); default: @@ -937,8 +941,8 @@ static void mds_allow_cli(struct obd_device *obd, unsigned long flag) obd->u.mds.mds_fl_synced = 1; if (flag & CONFIG_TARGET) obd->u.mds.mds_fl_target = 1; - if (obd->u.mds.mds_fl_cfglog && obd->u.mds.mds_fl_target - /* bz11778: && obd->u.mds.mds_fl_synced */) + if (obd->u.mds.mds_fl_cfglog && obd->u.mds.mds_fl_target && + (!obd->obd_recovering || obd->u.mds.mds_fl_synced)) /* Open for clients */ obd->obd_no_conn = 0; } -- 1.8.3.1