- /* Now add in all of the "SA" attributes */
- rc = -sa_handle_get(osd->od_os, db->db_object, NULL,
- SA_HDL_PRIVATE, &obj->oo_sa_hdl);
- if (rc)
- GOTO(out, rc);
-
- /* configure new osd object */
- obj->oo_db = db;
- parent = parent != 0 ? parent : zapid;
- rc = __osd_attr_init(env, osd, obj->oo_sa_hdl, oh->ot_tx,
- &obj->oo_attr, parent);
- if (rc)
- GOTO(out, rc);
-
- /* XXX: oo_lma_flags */
- obj->oo_dt.do_lu.lo_header->loh_attr |= obj->oo_attr.la_mode & S_IFMT;
- smp_mb();
- obj->oo_dt.do_lu.lo_header->loh_attr |= LOHA_EXISTS;
- if (likely(!fid_is_acct(lu_object_fid(&obj->oo_dt.do_lu))))
- /* no body operations for accounting objects */
- obj->oo_dt.do_body_ops = &osd_body_ops;
-
- rc = -nvlist_alloc(&obj->oo_sa_xattr, NV_UNIQUE_NAME, KM_SLEEP);
- if (rc)
- GOTO(out, rc);
-
- /* initialize LMA */
- lustre_lma_init(lma, lu_object_fid(&obj->oo_dt.do_lu), 0, 0);
- lustre_lma_swab(lma);
- rc = -nvlist_add_byte_array(obj->oo_sa_xattr, XATTR_NAME_LMA,
- (uchar_t *)lma, sizeof(*lma));
- if (rc)
- GOTO(out, rc);
- rc = __osd_sa_xattr_update(env, obj, oh);
- if (rc)
- GOTO(out, rc);
-