Whamcloud - gitweb
LU-12133 osd-zfs: set blocksize to 8K for llog objects
[fs/lustre-release.git] / lustre / osd-zfs / osd_object.c
index ca0db0f..63ab904 100644 (file)
@@ -455,7 +455,7 @@ static int osd_check_lma(const struct lu_env *env, struct osd_object *obj)
        const struct lu_fid *rfid = lu_object_fid(&obj->oo_dt.do_lu);
        ENTRY;
 
-       CLASSERT(sizeof(info->oti_buf) >= sizeof(*lma));
+       BUILD_BUG_ON(sizeof(info->oti_buf) < sizeof(*lma));
        lma = (struct lustre_mdt_attrs *)info->oti_buf;
        buf.lb_buf = lma;
        buf.lb_len = sizeof(info->oti_buf);
@@ -1300,7 +1300,7 @@ static int osd_attr_set(const struct lu_env *env, struct dt_object *dt,
 
                if (la->la_flags & LUSTRE_LMA_FL_MASKS) {
                        LASSERT(!obj->oo_pfid_in_lma);
-                       CLASSERT(sizeof(info->oti_buf) >= sizeof(*lma));
+                       BUILD_BUG_ON(sizeof(info->oti_buf) < sizeof(*lma));
                        lma = (struct lustre_mdt_attrs *)&info->oti_buf;
                        buf.lb_buf = lma;
                        buf.lb_len = sizeof(info->oti_buf);
@@ -1816,6 +1816,14 @@ static dnode_t *osd_mkreg(const struct lu_env *env, struct osd_object *obj,
                               osd->od_svname, rc);
                        return ERR_PTR(rc);
                }
+       } else if ((fid_is_llog(fid))) {
+               rc = -dmu_object_set_blocksize(osd->od_os, dn->dn_object,
+                                              LLOG_MIN_CHUNK_SIZE, 0, oh->ot_tx);
+               if (unlikely(rc)) {
+                       CERROR("%s: can't change blocksize: %d\n",
+                              osd->od_svname, rc);
+                       return ERR_PTR(rc);
+               }
        }
 
        return dn;