From 9a06bd51aa0c2dc09d9552c7a21be66a0e840913 Mon Sep 17 00:00:00 2001 From: johann Date: Fri, 6 Feb 2009 22:36:14 +0000 Subject: [PATCH] Branch b_release_1_6_7 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 0ec1de2..7809783 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; @@ -852,6 +854,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: @@ -871,8 +875,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