Whamcloud - gitweb
git://git.whamcloud.com
/
fs
/
lustre-release.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
LU-1718 client: Restore NFS export for Lustre on 3.X kernels
[fs/lustre-release.git]
/
lustre
/
osd-zfs
/
osd_index.c
diff --git
a/lustre/osd-zfs/osd_index.c
b/lustre/osd-zfs/osd_index.c
index
e240a1c
..
73d02a4
100644
(file)
--- 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",
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_sv
name, PFID(fid));
if (child == NULL) {
lu_object_put(env, luch);
CERROR("%s: Unable to get osd_object "DFID"\n",
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_sv
name, PFID(fid));
child = ERR_PTR(-ENOENT);
}
} else {
LU_OBJECT_DEBUG(D_ERROR, env, luch,
"%s: lu_object does not exists "DFID"\n",
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_sv
name, PFID(fid));
lu_object_put(env, luch);
child = ERR_PTR(-ENOENT);
}
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
*/
* zfs_readdir() generates ./.. on fly, but
* we want own entries (.. at least) with a fid
*/
-#if LUSTRE_VERSION_CODE >= OBD_OCD_VERSION(2, 3, 5
3
, 0)
+#if LUSTRE_VERSION_CODE >= OBD_OCD_VERSION(2, 3, 5
5
, 0)
#warning "fix '.' and '..' handling"
#endif
#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;
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
/*
* 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 (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 (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;
} 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
} 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