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-3259 clio: cl_lock simplification
[fs/lustre-release.git]
/
lustre
/
lov
/
lov_object.c
diff --git
a/lustre/lov/lov_object.c
b/lustre/lov/lov_object.c
index
19a9bcf
..
61b5a9f
100644
(file)
--- a/
lustre/lov/lov_object.c
+++ b/
lustre/lov/lov_object.c
@@
-314,8
+314,6
@@
static int lov_delete_empty(const struct lu_env *env, struct lov_object *lov,
LASSERT(lov->lo_type == LLT_EMPTY || lov->lo_type == LLT_RELEASED);
lov_layout_wait(env, lov);
LASSERT(lov->lo_type == LLT_EMPTY || lov->lo_type == LLT_RELEASED);
lov_layout_wait(env, lov);
-
- cl_locks_prune(env, &lov->lo_cl, 0);
return 0;
}
return 0;
}
@@
-383,7
+381,7
@@
static int lov_delete_raid0(const struct lu_env *env, struct lov_object *lov,
struct lovsub_object *los = r0->lo_sub[i];
if (los != NULL) {
struct lovsub_object *los = r0->lo_sub[i];
if (los != NULL) {
- cl_
locks_prune(env, &los->lso_cl, 1
);
+ cl_
object_prune(env, &los->lso_cl
);
/*
* If top-level object is to be evicted from
* the cache, so are its sub-objects.
/*
* If top-level object is to be evicted from
* the cache, so are its sub-objects.
@@
-392,7
+390,6
@@
static int lov_delete_raid0(const struct lu_env *env, struct lov_object *lov,
}
}
}
}
}
}
- cl_locks_prune(env, &lov->lo_cl, 0);
RETURN(0);
}
RETURN(0);
}
@@
-725,7
+722,9
@@
static int lov_layout_change(const struct lu_env *unused,
old_ops = &lov_dispatch[lov->lo_type];
new_ops = &lov_dispatch[llt];
old_ops = &lov_dispatch[lov->lo_type];
new_ops = &lov_dispatch[llt];
- cl_object_prune(env, &lov->lo_cl);
+ result = cl_object_prune(env, &lov->lo_cl);
+ if (result != 0)
+ GOTO(out, result);
result = old_ops->llo_delete(env, lov, &lov->u);
if (result == 0) {
result = old_ops->llo_delete(env, lov, &lov->u);
if (result == 0) {
@@
-751,6
+750,7
@@
static int lov_layout_change(const struct lu_env *unused,
}
}
}
}
+out:
cl_env_put(env, &refcheck);
cl_env_reexit(cookie);
RETURN(result);
cl_env_put(env, &refcheck);
cl_env_reexit(cookie);
RETURN(result);
@@
-830,7
+830,8
@@
static int lov_conf_set(const struct lu_env *env, struct cl_object *obj,
GOTO(out, result = -EBUSY);
}
GOTO(out, result = -EBUSY);
}
- lov->lo_layout_invalid = lov_layout_change(env, lov, conf);
+ result = lov_layout_change(env, lov, conf);
+ lov->lo_layout_invalid = result != 0;
EXIT;
out:
EXIT;
out: