if (ma->ma_need & MA_LOV_DEF) {
rc = mdd_get_default_md(mdd_obj, ma->ma_lmm,
- &ma->ma_lmm_size);
+ &ma->ma_lmm_size);
if (rc > 0) {
ma->ma_valid |= MA_LOV;
rc = 0;
ldesc = &mdd->mdd_obd_dev->u.mds.mds_lov_desc;
LASSERT(ldesc != NULL);
- LASSERT(size != NULL);
- if (!lmm) {
- *size = 0;
+ if (!lmm)
RETURN(0);
- }
lmm->lmm_magic = LOV_MAGIC_V1;
lmm->lmm_object_gr = LOV_OBJECT_GROUP_DEFAULT;
rc = mdd_get_md(env, mdd_obj, ma->ma_lmm, &ma->ma_lmm_size,
XATTR_NAME_LOV);
- if (rc == 0 && ma->ma_need & MA_LOV_DEF)
+
+ if (rc == 0 && (ma->ma_need & MA_LOV_DEF)) {
rc = mdd_get_default_md(mdd_obj, ma->ma_lmm,
- &ma->ma_lmm_size);
+ &ma->ma_lmm_size);
+ }
+
if (rc > 0) {
ma->ma_valid |= MA_LOV;
rc = 0;
{
struct md_attr *ma = &info->mti_attr;
- LASSERT(ma->ma_valid & MA_INODE);
-
/*XXX should pack the reply body according to lu_valid*/
b->valid |= OBD_MD_FLCTIME | OBD_MD_FLUID |
OBD_MD_FLGID | OBD_MD_FLTYPE |
OBD_MD_FLMODE | OBD_MD_FLNLINK | OBD_MD_FLFLAGS |
OBD_MD_FLATIME | OBD_MD_FLMTIME ;
- if (!S_ISREG(attr->la_mode)) {
+ if (!S_ISREG(attr->la_mode))
b->valid |= OBD_MD_FLSIZE | OBD_MD_FLBLOCKS | OBD_MD_FLRDEV;
- } else if (ma->ma_need & MA_LOV && ma->ma_lmm_size == 0) {
- /* means no objects are allocated on osts. */
- LASSERT(!(ma->ma_valid & MA_LOV));
- LASSERT(attr->la_blocks == 0);
- /* if no object is allocated on osts, the size on mds is valid. b=22272 */
- b->valid |= OBD_MD_FLSIZE | OBD_MD_FLBLOCKS;
- }
+
+ /* if no object is allocated on osts, the size on mds is valid. b=22272 */
+ if (ma->ma_lmm_size == 0)
+ b->valid |= OBD_MD_FLSIZE;
b->atime = attr->la_atime;
b->mtime = attr->la_mtime;
info->mti_attr.ma_valid = 0;
info->mti_attr.ma_lmm_size = info->mti_mdt->mdt_max_mdsize;
- OBD_ALLOC(info->mti_attr.ma_lmm, info->mti_mdt->mdt_max_mdsize);
+ OBD_ALLOC(info->mti_attr.ma_lmm, info->mti_attr.ma_lmm_size);
if (info->mti_attr.ma_lmm == NULL)
RETURN(-ENOMEM);
rc = mdt_mfd_close(info, mfd);
- OBD_FREE(info->mti_attr.ma_lmm, info->mti_mdt->mdt_max_mdsize);
+ OBD_FREE(info->mti_attr.ma_lmm, info->mti_attr.ma_lmm_size);
mdt_empty_transno(info);
RETURN(rc);
}
/* Close the found mfd, update attributes. */
ma->ma_lmm_size = info->mti_mdt->mdt_max_mdsize;
- OBD_ALLOC(ma->ma_lmm, info->mti_mdt->mdt_max_mdsize);
+ OBD_ALLOC(ma->ma_lmm, ma->ma_lmm_size);
if (ma->ma_lmm == NULL)
GOTO(out_put, rc = -ENOMEM);
mdt_mfd_close(info, mfd);
- OBD_FREE(ma->ma_lmm, info->mti_mdt->mdt_max_mdsize);
+ OBD_FREE(ma->ma_lmm, ma->ma_lmm_size);
} else {
rc = mdt_attr_set(info, mo, ma, rr->rr_flags);
if (rc)