Whamcloud - gitweb
LU-4543 osd: return actual hash value for a record
[fs/lustre-release.git] / lustre / osd-zfs / osd_object.c
index fa6fba9..8c2aba6 100644 (file)
@@ -339,7 +339,7 @@ int osd_object_init0(const struct lu_env *env, struct osd_object *obj)
         */
        obj->oo_dt.do_lu.lo_header->loh_attr |= obj->oo_attr.la_mode & S_IFMT;
 
-       cfs_mb();
+       smp_mb();
        obj->oo_dt.do_lu.lo_header->loh_attr |= LOHA_EXISTS;
 
        RETURN(0);
@@ -874,7 +874,10 @@ static int osd_declare_attr_set(const struct lu_env *env,
        oh = container_of0(handle, struct osd_thandle, ot_super);
 
        LASSERT(obj->oo_sa_hdl != NULL);
+       LASSERT(oh->ot_tx != NULL);
        dmu_tx_hold_sa(oh->ot_tx, obj->oo_sa_hdl, 0);
+       if (oh->ot_tx->tx_err != 0)
+               RETURN(-oh->ot_tx->tx_err);
 
        sa_object_size(obj->oo_sa_hdl, &blksize, &bspace);
        bspace = toqb(bspace * blksize);
@@ -1488,7 +1491,7 @@ static int osd_object_create(const struct lu_env *env, struct dt_object *dt,
 
        db = osd_create_type_f(dof->dof_type)(env, osd, attr, zapid, oh);
        if (IS_ERR(db))
-               GOTO(out, rc = PTR_ERR(th));
+               GOTO(out, rc = PTR_ERR(db));
 
        zde->zde_pad = 0;
        zde->zde_dnode = db->db_object;