diff --git a/lustre/llite/llite_lib.c b/lustre/llite/llite_lib.c index f033377a74e0f47e44c971ecd2e5ab0b66d1633d..279eb27b554981563180af2efb6823aa330a65be 100644 --- a/lustre/llite/llite_lib.c +++ b/lustre/llite/llite_lib.c @@ -153,6 +153,9 @@ static int lustre_connect_mds(struct super_block *sb, char *lmv, obd_set_info(md_obd->obd_self_export, strlen("async"), "async", sizeof(async), &async); + if (mds_security == NULL) + mds_security = "null"; + err = obd_set_info(md_obd->obd_self_export, strlen("sec"), "sec", strlen(mds_security), mds_security); @@ -230,6 +233,7 @@ out_disconnect: out: RETURN(err); } + static int lustre_connect_ost(struct super_block *sb, char *lov, struct obd_connect_data *data, char *oss_security, int async, int pag) diff --git a/lustre/mds/mds_reint.c b/lustre/mds/mds_reint.c index eb2c1dc20e95849734d2e4684b6008f5874a8606..8b681099eb81b48cc298b3696e216818aec96dda 100644 --- a/lustre/mds/mds_reint.c +++ b/lustre/mds/mds_reint.c @@ -599,24 +599,27 @@ static int mds_reint_setattr(struct mds_update_record *rec, int offset, char *name; int type; - /* tmp fix for cmobd set md reint */ LASSERT(rec->ur_eadata != NULL); LASSERT(rec->ur_ea2data != NULL); name = rec->ur_eadata; - - CDEBUG(D_INFO, "set %s EA for cmobd \n", name); + /* XXX: tmp fix for setting LOV EA from CMOBD */ type = mds_get_md_type(name); - if (type != 0) { + + if (type == EA_LOV) { + CDEBUG(D_INFO, "set %s EA for cmobd \n", name); + rc = fsfilt_set_md(obd, inode, handle, rec->ur_ea2data, - rec->ur_ea2datalen, type); + rec->ur_ea2datalen, + type); + if (rc) + GOTO(cleanup, rc); } - if (rc) - GOTO(cleanup, rc); } else if ((S_ISREG(inode->i_mode) || S_ISDIR(inode->i_mode)) && !((rec->ur_iattr.ia_valid & ATTR_KEY) || (rec->ur_iattr.ia_valid & ATTR_MAC))) { + struct lov_stripe_md *lsm = NULL; struct lov_user_md *lum = NULL; @@ -648,11 +651,12 @@ static int mds_reint_setattr(struct mds_update_record *rec, int offset, GOTO(cleanup, rc); } } - } - if ((rec->ur_iattr.ia_valid & ATTR_KEY) || - (rec->ur_iattr.ia_valid & ATTR_MAC)) { + } + + if ((rec->ur_iattr.ia_valid & ATTR_KEY) || (rec->ur_iattr.ia_valid & ATTR_MAC)) { void *key; int keylen; + LASSERT(rec->ur_eadatalen || rec->ur_ea3datalen); LASSERT(rec->ur_eadata || rec->ur_ea3data); key = rec->ur_ea3data ? rec->ur_ea3data : rec->ur_eadata;