X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fosd-zfs%2Fosd_object.c;h=85732f1ca65f2211b73903eb921a91536729661a;hb=98060d83459ba10409f295898f0ec917f938b4d3;hp=978aec70248ecd9231ea54c021c2de606a9b8b8d;hpb=9ee6e92bcf4a142e76e27d5b8ac8b34684749002;p=fs%2Flustre-release.git diff --git a/lustre/osd-zfs/osd_object.c b/lustre/osd-zfs/osd_object.c index 978aec7..85732f1 100644 --- a/lustre/osd-zfs/osd_object.c +++ b/lustre/osd-zfs/osd_object.c @@ -28,7 +28,7 @@ * Use is subject to license terms. */ /* - * Copyright (c) 2012, Intel Corporation. + * Copyright (c) 2012, 2013, Intel Corporation. * Use is subject to license terms. */ /* @@ -351,25 +351,26 @@ int osd_object_init0(const struct lu_env *env, struct osd_object *obj) static int osd_check_lma(const struct lu_env *env, struct osd_object *obj) { + struct osd_thread_info *info = osd_oti_get(env); struct lu_buf buf; int rc; struct lustre_mdt_attrs *lma; ENTRY; - lma = (struct lustre_mdt_attrs *)osd_oti_get(env)->oti_buf; + CLASSERT(sizeof(info->oti_buf) >= sizeof(*lma)); + lma = (struct lustre_mdt_attrs *)info->oti_buf; buf.lb_buf = lma; - buf.lb_len = sizeof(*lma); + buf.lb_len = sizeof(info->oti_buf); rc = osd_xattr_get(env, &obj->oo_dt, &buf, XATTR_NAME_LMA, BYPASS_CAPA); if (rc > 0) { rc = 0; - if (unlikely((le32_to_cpu(lma->lma_incompat) & - ~LMA_INCOMPAT_SUPP) || + lustre_lma_swab(lma); + if (unlikely((lma->lma_incompat & ~LMA_INCOMPAT_SUPP) || CFS_FAIL_CHECK(OBD_FAIL_OSD_LMA_INCOMPAT))) { CWARN("%s: unsupported incompat LMA feature(s) %#x for " - DFID"\n", osd_obj2dev(obj)->od_svname, - le32_to_cpu(lma->lma_incompat) & - ~LMA_INCOMPAT_SUPP, + "fid = "DFID"\n", osd_obj2dev(obj)->od_svname, + lma->lma_incompat & ~LMA_INCOMPAT_SUPP, PFID(lu_object_fid(&obj->oo_dt.do_lu))); rc = -EOPNOTSUPP; }