ceph: fix wrong check for the case of updating link count
Signed-off-by: "Yan, Zheng" <zyan@redhat.com> Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
This commit is contained in:
parent
a86f009f10
commit
fa466743a9
@ -3059,7 +3059,6 @@ static void handle_cap_grant(struct inode *inode,
|
|||||||
int used, wanted, dirty;
|
int used, wanted, dirty;
|
||||||
u64 size = le64_to_cpu(grant->size);
|
u64 size = le64_to_cpu(grant->size);
|
||||||
u64 max_size = le64_to_cpu(grant->max_size);
|
u64 max_size = le64_to_cpu(grant->max_size);
|
||||||
struct timespec mtime, atime, ctime;
|
|
||||||
int check_caps = 0;
|
int check_caps = 0;
|
||||||
bool wake = false;
|
bool wake = false;
|
||||||
bool writeback = false;
|
bool writeback = false;
|
||||||
@ -3124,7 +3123,7 @@ static void handle_cap_grant(struct inode *inode,
|
|||||||
from_kgid(&init_user_ns, inode->i_gid));
|
from_kgid(&init_user_ns, inode->i_gid));
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((newcaps & CEPH_CAP_AUTH_SHARED) &&
|
if ((newcaps & CEPH_CAP_LINK_SHARED) &&
|
||||||
(extra_info->issued & CEPH_CAP_LINK_EXCL) == 0) {
|
(extra_info->issued & CEPH_CAP_LINK_EXCL) == 0) {
|
||||||
set_nlink(inode, le32_to_cpu(grant->nlink));
|
set_nlink(inode, le32_to_cpu(grant->nlink));
|
||||||
if (inode->i_nlink == 0 &&
|
if (inode->i_nlink == 0 &&
|
||||||
@ -3149,6 +3148,7 @@ static void handle_cap_grant(struct inode *inode,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (newcaps & CEPH_CAP_ANY_RD) {
|
if (newcaps & CEPH_CAP_ANY_RD) {
|
||||||
|
struct timespec mtime, atime, ctime;
|
||||||
/* ctime/mtime/atime? */
|
/* ctime/mtime/atime? */
|
||||||
ceph_decode_timespec(&mtime, &grant->mtime);
|
ceph_decode_timespec(&mtime, &grant->mtime);
|
||||||
ceph_decode_timespec(&atime, &grant->atime);
|
ceph_decode_timespec(&atime, &grant->atime);
|
||||||
|
Loading…
Reference in New Issue
Block a user