mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-24 14:20:55 +07:00
ceph: don't request excl caps when mount is readonly
Signed-off-by: "Yan, Zheng" <zyan@redhat.com> Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
This commit is contained in:
parent
3c1392d4c4
commit
8a2ac3a8e9
@ -1855,14 +1855,17 @@ void ceph_check_caps(struct ceph_inode_info *ci, int flags,
|
||||
retain |= CEPH_CAP_ANY; /* be greedy */
|
||||
} else if (S_ISDIR(inode->i_mode) &&
|
||||
(issued & CEPH_CAP_FILE_SHARED) &&
|
||||
__ceph_dir_is_complete(ci)) {
|
||||
__ceph_dir_is_complete(ci)) {
|
||||
/*
|
||||
* If a directory is complete, we want to keep
|
||||
* the exclusive cap. So that MDS does not end up
|
||||
* revoking the shared cap on every create/unlink
|
||||
* operation.
|
||||
*/
|
||||
want = CEPH_CAP_ANY_SHARED | CEPH_CAP_FILE_EXCL;
|
||||
if (IS_RDONLY(inode))
|
||||
want = CEPH_CAP_ANY_SHARED;
|
||||
else
|
||||
want = CEPH_CAP_ANY_SHARED | CEPH_CAP_FILE_EXCL;
|
||||
retain |= want;
|
||||
} else {
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user