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-1876 hsm: layout lock implementation on server side
[fs/lustre-release.git]
/
lustre
/
llite
/
vvp_object.c
diff --git
a/lustre/llite/vvp_object.c
b/lustre/llite/vvp_object.c
index
f112744
..
20dcdf9
100644
(file)
--- a/
lustre/llite/vvp_object.c
+++ b/
lustre/llite/vvp_object.c
@@
-128,9
+128,23
@@
int vvp_conf_set(const struct lu_env *env, struct cl_object *obj,
{
struct ll_inode_info *lli = ll_i2info(conf->coc_inode);
- if (conf->u.coc_md != NULL && conf->u.coc_md->lsm != NULL)
+ if (conf->coc_opc != OBJECT_CONF_SET)
+ return 0;
+
+ if (conf->u.coc_md != NULL && conf->u.coc_md->lsm != NULL) {
+ CDEBUG(D_VFSTRACE, "layout lock change: %u -> %u\n",
+ lli->lli_layout_gen,
+ conf->u.coc_md->lsm->lsm_layout_gen);
+
+ lli->lli_has_smd = true;
lli->lli_layout_gen = conf->u.coc_md->lsm->lsm_layout_gen;
+ } else {
+ CDEBUG(D_VFSTRACE, "layout lock destroyed: %u.\n",
+ lli->lli_layout_gen);
+ lli->lli_has_smd = false;
+ lli->lli_layout_gen = LL_LAYOUT_GEN_ZERO;
+ }
return 0;
}