From: Alex Zhuravlev Date: Fri, 1 Apr 2016 11:22:53 +0000 (+0300) Subject: LU-7906 osd: no blocksize on non-OST objects X-Git-Tag: 2.8.54~22 X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=commitdiff_plain;h=aa84fbc8165f526dae4bd824a48c186c3ac2f639;hp=3680fa1821496c213fc0495c37323c7ea0640625 LU-7906 osd: no blocksize on non-OST objects osd-zfs should not set blocksize on non-OST objects. Change-Id: Idafe2236a49ffcb86bf06971d3687c8fceb516a2 Signed-off-by: Alex Zhuravlev Reviewed-on: http://review.whamcloud.com/19286 Tested-by: Jenkins Reviewed-by: Nathaniel Clark Reviewed-by: Jinshan Xiong Reviewed-by: Andreas Dilger Tested-by: Maloo --- diff --git a/lustre/osd-zfs/osd_object.c b/lustre/osd-zfs/osd_object.c index fa9ec894..4079eeb 100644 --- a/lustre/osd-zfs/osd_object.c +++ b/lustre/osd-zfs/osd_object.c @@ -1390,8 +1390,9 @@ static dmu_buf_t *osd_mkreg(const struct lu_env *env, struct osd_object *obj, struct lu_attr *la, uint64_t parent, struct osd_thandle *oh) { - dmu_buf_t *db; - int rc; + const struct lu_fid *fid = lu_object_fid(&obj->oo_dt.do_lu); + dmu_buf_t *db; + int rc; struct osd_device *osd = osd_obj2dev(obj); LASSERT(S_ISREG(la->la_mode)); @@ -1406,7 +1407,7 @@ static dmu_buf_t *osd_mkreg(const struct lu_env *env, struct osd_object *obj, * blocksize is selected based on the file size rather than the * making broad assumptions based on the osd type. */ - if (!lu_device_is_md(osd2lu_dev(osd))) { + if ((fid_is_idif(fid) || fid_is_norm(fid)) && osd->od_is_ost) { rc = -dmu_object_set_blocksize(osd->od_os, db->db_object, osd->od_max_blksz, 0, oh->ot_tx); if (unlikely(rc)) {