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-5564 mdt: skip permission check for close
[fs/lustre-release.git]
/
lustre
/
mdt
/
mdt_lib.c
diff --git
a/lustre/mdt/mdt_lib.c
b/lustre/mdt/mdt_lib.c
index
a3b5693
..
eb08efc
100644
(file)
--- a/
lustre/mdt/mdt_lib.c
+++ b/
lustre/mdt/mdt_lib.c
@@
-547,11
+547,17
@@
int mdt_init_ucred_reint(struct mdt_thread_info *info)
{
struct ptlrpc_request *req = mdt_info_req(info);
struct lu_ucred *uc = mdt_ucred(info);
+ struct md_attr *ma = &info->mti_attr;
LASSERT(uc != NULL);
if ((uc->uc_valid == UCRED_OLD) || (uc->uc_valid == UCRED_NEW))
return 0;
+ /* LU-5564: for normal close request, skip permission check */
+ if (lustre_msg_get_opc(req->rq_reqmsg) == MDS_CLOSE &&
+ !(ma->ma_attr_flags & (MDS_HSM_RELEASE | MDS_CLOSE_LAYOUT_SWAP)))
+ uc->uc_cap |= CFS_CAP_FS_MASK;
+
mdt_exit_ucred(info);
if (!req->rq_auth_gss || req->rq_auth_usr_mdt || !req->rq_user_desc)