From: johann Date: Mon, 9 Feb 2009 14:57:20 +0000 (+0000) Subject: Branch b_release_1_8_0 X-Git-Tag: 1.8.0~115 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=4b882de08e88401d937a135fa55c8a1885d5a3e8;p=fs%2Flustre-release.git Branch b_release_1_8_0 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. --- 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; }