X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fosd-zfs%2Fosd_index.c;h=cb865b5bcdadd8232722b6b67a9b8714ac01d3a1;hb=52953ae668710484a8396cdb2fe94016051496a6;hp=e240a1c1ded93e0bafa89ab840f8df934ba51353;hpb=6548527351d9dfeb5bd0d0e8d2f5f0460a8cd037;p=fs%2Flustre-release.git diff --git a/lustre/osd-zfs/osd_index.c b/lustre/osd-zfs/osd_index.c index e240a1c..cb865b5 100644 --- a/lustre/osd-zfs/osd_index.c +++ b/lustre/osd-zfs/osd_index.c @@ -468,18 +468,18 @@ struct osd_object *osd_object_find(const struct lu_env *env, else LU_OBJECT_DEBUG(D_ERROR, env, luch, "%s: object can't be located "DFID"\n", - ludev->ld_obd->obd_name, PFID(fid)); + osd_dev(ludev)->od_svname, PFID(fid)); if (child == NULL) { lu_object_put(env, luch); CERROR("%s: Unable to get osd_object "DFID"\n", - ludev->ld_obd->obd_name, PFID(fid)); + osd_dev(ludev)->od_svname, PFID(fid)); child = ERR_PTR(-ENOENT); } } else { LU_OBJECT_DEBUG(D_ERROR, env, luch, "%s: lu_object does not exists "DFID"\n", - ludev->ld_obd->obd_name, PFID(fid)); + osd_dev(ludev)->od_svname, PFID(fid)); lu_object_put(env, luch); child = ERR_PTR(-ENOENT); } @@ -536,7 +536,7 @@ static int osd_dir_insert(const struct lu_env *env, struct dt_object *dt, * zfs_readdir() generates ./.. on fly, but * we want own entries (.. at least) with a fid */ -#if LUSTRE_VERSION_CODE >= OBD_OCD_VERSION(2, 3, 53, 0) +#if LUSTRE_VERSION_CODE >= OBD_OCD_VERSION(2, 3, 58, 0) #warning "fix '.' and '..' handling" #endif @@ -902,7 +902,7 @@ int osd_index_try(const struct lu_env *env, struct dt_object *dt, struct osd_object *obj = osd_dt_obj(dt); ENTRY; - LASSERT(obj->oo_db != NULL); + LASSERT(dt_object_exists(dt)); /* * XXX: implement support for fixed-size keys sorted with natural @@ -911,16 +911,19 @@ int osd_index_try(const struct lu_env *env, struct dt_object *dt, if (feat->dif_flags & DT_IND_RANGE) RETURN(-ERANGE); + if (unlikely(feat == &dt_otable_features)) + /* do not support oi scrub yet. */ + RETURN(-ENOTSUPP); + + LASSERT(obj->oo_db != NULL); if (likely(feat == &dt_directory_features)) { if (udmu_object_is_zap(obj->oo_db)) dt->do_index_ops = &osd_dir_ops; else RETURN(-ENOTDIR); -#if 0 } else if (unlikely(feat == &dt_acct_features)) { LASSERT(fid_is_acct(lu_object_fid(&dt->do_lu))); dt->do_index_ops = &osd_acct_index_ops; -#endif } else if (udmu_object_is_zap(obj->oo_db) && dt->do_index_ops == NULL) { /* For index file, we don't support variable key & record sizes