]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
os/filestore: make 0-length zero avoid touching object length
authorSage Weil <sage@redhat.com>
Fri, 6 Oct 2017 20:29:15 +0000 (15:29 -0500)
committerSage Weil <sage@redhat.com>
Mon, 9 Oct 2017 02:46:03 +0000 (21:46 -0500)
Fixes: http://tracker.ceph.com/issues/21712
Signed-off-by: Sage Weil <sage@redhat.com>
src/os/filestore/FileStore.cc

index ed76406f810f631a0bffb95b63c8f20237d0e54d..c91a74e43be84e09ba02476c06e77dbe3d119e82 100644 (file)
@@ -3571,8 +3571,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;