diff options
author | Xiubo Li <xiubli@redhat.com> | 2023-03-06 15:01:15 +0800 |
---|---|---|
committer | Ilya Dryomov <idryomov@gmail.com> | 2023-08-24 11:24:36 +0200 |
commit | 295fc4aa7de4b72cfd764b75a238f79b9433e3ec (patch) | |
tree | 7bc969e207ffc01308c1fce86be870acd4b21ea2 /fs/ceph/caps.c | |
parent | 1464de9f813e35559ff049f1f1f20f1e2a31d6b8 (diff) | |
download | linux-stable-295fc4aa7de4b72cfd764b75a238f79b9433e3ec.tar.gz linux-stable-295fc4aa7de4b72cfd764b75a238f79b9433e3ec.tar.bz2 linux-stable-295fc4aa7de4b72cfd764b75a238f79b9433e3ec.zip |
ceph: fix updating i_truncate_pagecache_size for fscrypt
When fscrypt is enabled we will align the truncate size up to the
CEPH_FSCRYPT_BLOCK_SIZE always, so if we truncate the size in the
same block more than once, the latter ones will be skipped being
invalidated from the page caches.
This will force invalidating the page caches by using the smaller
size than the real file size.
At the same time add more debug log and fix the debug log for
truncate code.
Link: https://tracker.ceph.com/issues/58834
Signed-off-by: Xiubo Li <xiubli@redhat.com>
Reviewed-and-tested-by: Luís Henriques <lhenriques@suse.de>
Reviewed-by: Milind Changire <mchangir@redhat.com>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Diffstat (limited to 'fs/ceph/caps.c')
-rw-r--r-- | fs/ceph/caps.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/ceph/caps.c b/fs/ceph/caps.c index 54041d9c1e25..028b5140a85d 100644 --- a/fs/ceph/caps.c +++ b/fs/ceph/caps.c @@ -3950,8 +3950,8 @@ static bool handle_cap_trunc(struct inode *inode, if (IS_ENCRYPTED(inode) && size) size = extra_info->fscrypt_file_size; - dout("handle_cap_trunc inode %p mds%d seq %d to %lld seq %d\n", - inode, mds, seq, truncate_size, truncate_seq); + dout("%s inode %p mds%d seq %d to %lld truncate seq %d\n", + __func__, inode, mds, seq, truncate_size, truncate_seq); queue_trunc = ceph_fill_file_size(inode, issued, truncate_seq, truncate_size, size); return queue_trunc; |