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-8019 llite: Restore proper opencache operations
[fs/lustre-release.git]
/
lustre
/
llite
/
lcommon_cl.c
diff --git
a/lustre/llite/lcommon_cl.c
b/lustre/llite/lcommon_cl.c
index
6433bb7
..
94fda5a
100644
(file)
--- a/
lustre/llite/lcommon_cl.c
+++ b/
lustre/llite/lcommon_cl.c
@@
-64,7
+64,7
@@
* mutex.
*/
struct lu_env *cl_inode_fini_env;
* mutex.
*/
struct lu_env *cl_inode_fini_env;
-
int
cl_inode_fini_refcheck;
+
__u16
cl_inode_fini_refcheck;
/**
* A mutex serializing calls to slp_inode_fini() under extreme memory
/**
* A mutex serializing calls to slp_inode_fini() under extreme memory
@@
-78,7
+78,7
@@
int cl_setattr_ost(struct cl_object *obj, const struct iattr *attr,
struct lu_env *env;
struct cl_io *io;
int result;
struct lu_env *env;
struct cl_io *io;
int result;
-
int
refcheck;
+
__u16
refcheck;
ENTRY;
ENTRY;
@@
-142,7
+142,7
@@
int cl_file_inode_init(struct inode *inode, struct lustre_md *md)
}
};
int result = 0;
}
};
int result = 0;
-
int
refcheck;
+
__u16
refcheck;
LASSERT(md->body->mbo_valid & OBD_MD_FLID);
LASSERT(S_ISREG(inode->i_mode));
LASSERT(md->body->mbo_valid & OBD_MD_FLID);
LASSERT(S_ISREG(inode->i_mode));
@@
-227,20
+227,16
@@
void cl_inode_fini(struct inode *inode)
{
struct lu_env *env;
struct ll_inode_info *lli = ll_i2info(inode);
{
struct lu_env *env;
struct ll_inode_info *lli = ll_i2info(inode);
-
struct cl_object *clob = lli->lli_clob;
-
int
refcheck;
-
int emergency;
+ struct cl_object *clob = lli->lli_clob;
+
__u16
refcheck;
+ int emergency;
- if (clob != NULL) {
- void *cookie;
-
- cookie = cl_env_reenter();
- env = cl_env_get(&refcheck);
- emergency = IS_ERR(env);
+ if (clob != NULL) {
+ env = cl_env_get(&refcheck);
+ emergency = IS_ERR(env);
if (emergency) {
mutex_lock(&cl_inode_fini_guard);
LASSERT(cl_inode_fini_env != NULL);
if (emergency) {
mutex_lock(&cl_inode_fini_guard);
LASSERT(cl_inode_fini_env != NULL);
- cl_env_implant(cl_inode_fini_env, &refcheck);
env = cl_inode_fini_env;
}
env = cl_inode_fini_env;
}
@@
-253,15
+249,11
@@
void cl_inode_fini(struct inode *inode)
lu_object_ref_del(&clob->co_lu, "inode", inode);
cl_object_put_last(env, clob);
lli->lli_clob = NULL;
lu_object_ref_del(&clob->co_lu, "inode", inode);
cl_object_put_last(env, clob);
lli->lli_clob = NULL;
- if (emergency) {
- cl_env_unplant(cl_inode_fini_env, &refcheck);
+ if (emergency)
mutex_unlock(&cl_inode_fini_guard);
mutex_unlock(&cl_inode_fini_guard);
- } else {
+ else
cl_env_put(env, &refcheck);
cl_env_put(env, &refcheck);
- }
-
- cl_env_reexit(cookie);
- }
+ }
}
/**
}
/**