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-11668 mdd: use mdd_object_fid() instead of mdo2fid()
[fs/lustre-release.git]
/
lustre
/
mdd
/
mdd_orphans.c
diff --git
a/lustre/mdd/mdd_orphans.c
b/lustre/mdd/mdd_orphans.c
index
2de5baa
..
2652d96
100644
(file)
--- a/
lustre/mdd/mdd_orphans.c
+++ b/
lustre/mdd/mdd_orphans.c
@@
-88,7
+88,7
@@
static inline int mdd_orphan_insert_obj(const struct lu_env *env,
{
struct dt_insert_rec *rec = &mdd_env_info(env)->mti_dt_rec;
struct dt_object *dor = mdd->mdd_orphans;
- const struct lu_fid *lf = md
o2
fid(obj);
+ const struct lu_fid *lf = md
d_object_
fid(obj);
struct dt_key *key = mdd_orphan_key_fill(env, lf);
rec->rec_fid = lf;
@@
-105,9
+105,9
@@
int mdd_orphan_declare_insert(const struct lu_env *env, struct mdd_object *obj,
struct dt_key *key;
int rc;
- key = mdd_orphan_key_fill(env, md
o2
fid(obj));
+ key = mdd_orphan_key_fill(env, md
d_object_
fid(obj));
- rec->rec_fid = md
o2
fid(obj);
+ rec->rec_fid = md
d_object_
fid(obj);
rec->rec_type = mode;
rc = dt_declare_insert(env, mdd->mdd_orphans,
(const struct dt_rec *)rec, key, th);
@@
-164,7
+164,7
@@
int mdd_orphan_insert(const struct lu_env *env, struct mdd_object *obj,
LASSERT(mdd_write_locked(env, obj) != 0);
LASSERT(!(obj->mod_flags & ORPHAN_OBJ));
- dt_write_lock(env, mdd->mdd_orphans,
MOR
_TGT_ORPHAN);
+ dt_write_lock(env, mdd->mdd_orphans,
DT
_TGT_ORPHAN);
rc = mdd_orphan_insert_obj(env, mdd, obj, th);
if (rc)
@@
-204,7
+204,7
@@
int mdd_orphan_declare_delete(const struct lu_env *env, struct mdd_object *obj,
struct dt_key *key;
int rc;
- key = mdd_orphan_key_fill(env, md
o2
fid(obj));
+ key = mdd_orphan_key_fill(env, md
d_object_
fid(obj));
rc = dt_declare_delete(env, mdd->mdd_orphans, key, th);
if (rc)
@@
-254,15
+254,15
@@
int mdd_orphan_delete(const struct lu_env *env, struct mdd_object *obj,
LASSERT(dor);
- key = mdd_orphan_key_fill(env, md
o2
fid(obj));
- dt_write_lock(env, mdd->mdd_orphans,
MOR
_TGT_ORPHAN);
+ key = mdd_orphan_key_fill(env, md
d_object_
fid(obj));
+ dt_write_lock(env, mdd->mdd_orphans,
DT
_TGT_ORPHAN);
if (OBD_FAIL_CHECK(OBD_FAIL_MDS_ORPHAN_DELETE))
goto ref_del;
rc = dt_delete(env, mdd->mdd_orphans, key, th);
if (rc == -ENOENT) {
- key = mdd_orphan_key_fill_20(env, md
o2
fid(obj));
+ key = mdd_orphan_key_fill_20(env, md
d_object_
fid(obj));
rc = dt_delete(env, mdd->mdd_orphans, key, th);
}
@@
-277,7
+277,7
@@
ref_del:
obj->mod_flags &= ~ORPHAN_OBJ;
} else {
CERROR("%s: could not delete orphan object "DFID": rc = %d\n",
- mdd
2obd_dev(mdd)->obd_name, PFID(mdo2
fid(obj)), rc);
+ mdd
_obj_dev_name(obj), PFID(mdd_object_
fid(obj)), rc);
}
dt_write_unlock(env, mdd->mdd_orphans);
@@
-303,7
+303,7
@@
static int mdd_orphan_destroy(const struct lu_env *env, struct mdd_object *obj,
RETURN(rc);
}
- mdd_write_lock(env, obj,
MOR
_TGT_CHILD);
+ mdd_write_lock(env, obj,
DT
_TGT_CHILD);
rc = mdd_orphan_declare_delete(env, obj, th);
if (rc == -ENOENT)
orphan_exists = false;
@@
-321,12
+321,16
@@
static int mdd_orphan_destroy(const struct lu_env *env, struct mdd_object *obj,
GOTO(unlock, rc);
if (likely(obj->mod_count == 0)) {
- dt_write_lock(env, mdd->mdd_orphans,
MOR
_TGT_ORPHAN);
+ dt_write_lock(env, mdd->mdd_orphans,
DT
_TGT_ORPHAN);
rc = dt_delete(env, mdd->mdd_orphans, key, th);
+ if (rc == -ENOENT) {
+ key = mdd_orphan_key_fill_20(env, mdd_object_fid(obj));
+ rc = dt_delete(env, mdd->mdd_orphans, key, th);
+ }
if (rc) {
CERROR("%s: could not delete orphan "DFID": rc = %d\n",
- mdd
2obd_dev(mdd)->obd_name, PFID(mdo2fid(obj)
),
- rc);
+ mdd
_obj_dev_name(obj
),
+
PFID(mdd_object_fid(obj)),
rc);
} else if (orphan_exists) {
mdo_ref_del(env, obj, th);
if (S_ISDIR(mdd_object_type(obj))) {
@@
-336,8
+340,8
@@
static int mdd_orphan_destroy(const struct lu_env *env, struct mdd_object *obj,
rc = mdo_destroy(env, obj, th);
} else {
CWARN("%s: orphan %s "DFID" doesn't exist\n",
- mdd
2obd_dev(mdd)->obd_name
, (char *)key,
- PFID(md
o2
fid(obj)));
+ mdd
_obj_dev_name(obj)
, (char *)key,
+ PFID(md
d_object_
fid(obj)));
}
dt_write_unlock(env, mdd->mdd_orphans);
}
@@
-375,11
+379,11
@@
static int mdd_orphan_key_test_and_delete(const struct lu_env *env,
if (mdo->mod_count == 0) {
CDEBUG(D_HA, "Found orphan "DFID", delete it\n", PFID(lf));
rc = mdd_orphan_destroy(env, mdo, key);
- if (rc) /*
so replay-single.sh test_37 works
*/
+ if (rc) /*
below message checked in replay-single.sh test_37
*/
CERROR("%s: error unlinking orphan "DFID": rc = %d\n",
mdd2obd_dev(mdd)->obd_name, PFID(lf), rc);
} else {
-
mdd_write_lock(env, mdo, MOR
_TGT_CHILD);
+
mdd_write_lock(env, mdo, DT
_TGT_CHILD);
if (likely(mdo->mod_count > 0)) {
CDEBUG(D_HA, "Found orphan "DFID" count %d, skip it\n",
PFID(lf), mdo->mod_count);