From bca998429d2dda8f9156fcfb828dac4f0fac2e16 Mon Sep 17 00:00:00 2001 From: Christopher Hoffman Date: Tue, 11 Feb 2025 16:05:29 +0000 Subject: [PATCH] client: Fix up a few things in read_sync path Fix up a few things in read_sync path 1. File size may not be updated locally, do not check for trim read 2. Do not get_cap before RMW, each do_write takes care of having proper caps Fixes: https://tracker.ceph.com/issues/69796 Signed-off-by: Christopher Hoffman --- src/client/Client.cc | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/src/client/Client.cc b/src/client/Client.cc index 412c75c3cac..ebb3e98e818 100644 --- a/src/client/Client.cc +++ b/src/client/Client.cc @@ -11901,12 +11901,6 @@ int Client::_read_sync(Fh *f, uint64_t off, uint64_t len, bufferlist *bl, auto effective_size = in->effective_size(); - // trim read based on file size? - if (off >= in->effective_size()) - return 0; - if (len == 0) - return 0; - auto target_len = std::min(len, effective_size - off); uint64_t read_start; uint64_t read_len; @@ -11945,7 +11939,6 @@ int Client::_read_sync(Fh *f, uint64_t off, uint64_t len, bufferlist *bl, left -= r; pbl->claim_append(tbl); } - auto effective_size = (fscrypt_denc ? in->effective_size() : in->size); // short read? if (r >= 0 && r < wanted) { @@ -12794,8 +12787,6 @@ int64_t Client::_write(Fh *f, int64_t offset, uint64_t size, bufferlist bl, filer_iofinish.reset(new C_OnFinisher(new C_Lock_Client_Finisher(this, iofinish.get()), &objecter_finisher)); } - get_cap_ref(in, CEPH_CAP_FILE_BUFFER); - auto delay = get_injected_write_delay_secs(); if (unlikely(delay > 0)) { ldout(cct, 20) << __func__ << ": delaying write for " << delay << " seconds" << dendl; @@ -12805,7 +12796,7 @@ int64_t Client::_write(Fh *f, int64_t offset, uint64_t size, bufferlist bl, } ldout(cct, 10) << " _write_filer" << dendl; - enc_mgr->read_modify_write(iofinish.get()); + enc_mgr->read_modify_write(filer_iofinish.get()); if (onfinish) { // handle non-blocking caller (onfinish != nullptr), we can now safely -- 2.39.5