From: Sage Weil Date: Fri, 6 Oct 2017 20:29:15 +0000 (-0500) Subject: os/filestore: make 0-length zero avoid touching object length X-Git-Tag: v12.2.3~190^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=45d70b1329a8c635d2ac0ea5ec171cbea0f6ce02;p=ceph.git os/filestore: make 0-length zero avoid touching object length Fixes: http://tracker.ceph.com/issues/21712 Signed-off-by: Sage Weil (cherry picked from commit 979b7c9cd2e4919b8c7d5ed2418019310959f4bf) --- diff --git a/src/os/filestore/FileStore.cc b/src/os/filestore/FileStore.cc index caac76ec4140..8b596a723616 100644 --- a/src/os/filestore/FileStore.cc +++ b/src/os/filestore/FileStore.cc @@ -3578,8 +3578,8 @@ int FileStore::_zero(const coll_t& cid, const ghobject_t& oid, uint64_t offset, if (ret < 0) { ret = -errno; } else { - // ensure we extent file size, if needed - if (offset + len > (uint64_t)st.st_size) { + // ensure we extend file size, if needed + if (len > 0 && offset + len > (uint64_t)st.st_size) { ret = ::ftruncate(**fd, offset + len); if (ret < 0) { ret = -errno;