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:
Родитель
3c1392d4c4
Коммит
8a2ac3a8e9
|
@ -1855,14 +1855,17 @@ retry_locked:
|
||||||
retain |= CEPH_CAP_ANY; /* be greedy */
|
retain |= CEPH_CAP_ANY; /* be greedy */
|
||||||
} else if (S_ISDIR(inode->i_mode) &&
|
} else if (S_ISDIR(inode->i_mode) &&
|
||||||
(issued & CEPH_CAP_FILE_SHARED) &&
|
(issued & CEPH_CAP_FILE_SHARED) &&
|
||||||
__ceph_dir_is_complete(ci)) {
|
__ceph_dir_is_complete(ci)) {
|
||||||
/*
|
/*
|
||||||
* If a directory is complete, we want to keep
|
* If a directory is complete, we want to keep
|
||||||
* the exclusive cap. So that MDS does not end up
|
* the exclusive cap. So that MDS does not end up
|
||||||
* revoking the shared cap on every create/unlink
|
* revoking the shared cap on every create/unlink
|
||||||
* operation.
|
* 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;
|
retain |= want;
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче