Whamcloud - gitweb
LU-1718 client: Restore NFS export for Lustre on 3.X kernels
[fs/lustre-release.git] / lustre / osd-zfs / osd_index.c
index e240a1c..73d02a4 100644 (file)
@@ -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, 55, 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