From: Christopher Hoffman Date: Tue, 7 May 2024 00:59:11 +0000 (+0000) Subject: client: fscrypt rmw fails when endoff end of block or file X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=0c822ec23c8667a94099be156708015bc3e93dc4;p=ceph-ci.git client: fscrypt rmw fails when endoff end of block or file Fscrypt rmw fails when end of a write lines up with end of a block or end of the file. Fixes: https://tracker.ceph.com/issues/65745 Signed-off-by: Christopher Hoffman --- diff --git a/src/client/Client.cc b/src/client/Client.cc index 195489b19a4..be1206a3246 100644 --- a/src/client/Client.cc +++ b/src/client/Client.cc @@ -12150,7 +12150,7 @@ int Client::WriteEncMgr::read_modify_write(Context *_iofinish) ofs_in_end_block = fscrypt_ofs_in_block(endoff - 1); need_read_start = ofs_in_start_block >= 0; - need_read_end = (endoff < in->effective_size() && ofs_in_end_block < FSCRYPT_BLOCK_SIZE - 1 && start_block != end_block); + need_read_end = (endoff <= in->effective_size() && ofs_in_end_block < FSCRYPT_BLOCK_SIZE && start_block != end_block); read_start_size = FSCRYPT_BLOCK_SIZE; bool need_read = need_read_start | need_read_end;