From: Christopher Hoffman Date: Wed, 18 Dec 2024 15:38:02 +0000 (+0000) Subject: client: Use correct sizes on write_success X-Git-Tag: testing/wip-vshankar-testing-20260120.085915-debug^2~13^2~95 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=28a8ebef572db67a4fad28ef02109b86ad770df9;p=ceph-ci.git client: Use correct sizes on write_success Fixes: https://tracker.ceph.com/issues/69302 Signed-off-by: Christopher Hoffman --- diff --git a/src/client/Client.cc b/src/client/Client.cc index 28f8157d8bd..eba7edcca73 100644 --- a/src/client/Client.cc +++ b/src/client/Client.cc @@ -12123,12 +12123,14 @@ int64_t Client::_write_success(Fh *f, utime_t start, uint64_t fpos, // extend file? if (request_size + request_offset > in->effective_size()) { + size = request_size + request_offset; if (encrypted) { - in->set_effective_size(request_size + request_offset); + in->set_effective_size(size); in->mark_caps_dirty(CEPH_CAP_FILE_EXCL); + size = fscrypt_next_block_start(offset + size); } ldout(cct, 7) << "in->effective_size()=" << in->effective_size() << dendl; - in->size = offset + size; + in->size = size; in->mark_caps_dirty(CEPH_CAP_FILE_WR); if (is_quota_bytes_approaching(in, f->actor_perms)) { @@ -17536,7 +17538,11 @@ int Client::_fallocate(Fh *fh, int mode, int64_t offset, int64_t length) } } else if (!(mode & FALLOC_FL_KEEP_SIZE)) { uint64_t size = offset + length; - if (size > in->size) { + if (size > in->effective_size()) { + if (in->is_fscrypt_enabled()) { + in->set_effective_size(size); + size = fscrypt_next_block_start(size); + } in->size = size; in->mtime = in->ctime = ceph_clock_now(); in->change_attr++;