]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
os/bluestore: drop unwritten handling in _do_read
authorSage Weil <sage@redhat.com>
Wed, 4 May 2016 17:40:57 +0000 (13:40 -0400)
committerSage Weil <sage@redhat.com>
Wed, 4 May 2016 17:40:57 +0000 (13:40 -0400)
These never reach disk.

Signed-off-by: Sage Weil <sage@redhat.com>
src/os/bluestore/BlueStore.cc

index a37bd32ecdbd936051f478bc3e1a70cf165c0e54..b88a352ee8f9956bcf412b1e1558ea22e6a4c0ee 100644 (file)
@@ -2697,30 +2697,23 @@ int BlueStore::_do_read(
     if (bp != bend && bp->first <= offset) {
       uint64_t x_off = offset - bp->first;
       x_len = MIN(x_len, bp->second.length - x_off);
-      if (!bp->second.has_flag(bluestore_extent_t::FLAG_UNWRITTEN)) {
-       dout(30) << __func__ << " data " << bp->first << ": " << bp->second
-                << " use " << x_off << "~" << x_len
-                << " final offset " << x_off + bp->second.offset
-                << dendl;
-       uint64_t front_extra = x_off % block_size;
-       uint64_t r_off = x_off - front_extra;
-       uint64_t r_len = ROUND_UP_TO(x_len + front_extra, block_size);
-       dout(30) << __func__ << "  reading " << r_off << "~" << r_len << dendl;
-       bufferlist t;
-       r = bdev->read(r_off + bp->second.offset, r_len, &t, &ioc, buffered);
-       if (r < 0) {
-         goto out;
-       }
-       r = r_len;
-       bufferlist u;
-       u.substr_of(t, front_extra, x_len);
-       bl.claim_append(u);
-      } else {
-       // unwritten (zero) extent
-       dout(30) << __func__ << " data " << bp->first << ": " << bp->second
-                << ", use " << x_len << " zeros" << dendl;
-       bl.append_zero(x_len);
+      dout(30) << __func__ << " data " << bp->first << ": " << bp->second
+              << " use " << x_off << "~" << x_len
+              << " final offset " << x_off + bp->second.offset
+              << dendl;
+      uint64_t front_extra = x_off % block_size;
+      uint64_t r_off = x_off - front_extra;
+      uint64_t r_len = ROUND_UP_TO(x_len + front_extra, block_size);
+      dout(30) << __func__ << "  reading " << r_off << "~" << r_len << dendl;
+      bufferlist t;
+      r = bdev->read(r_off + bp->second.offset, r_len, &t, &ioc, buffered);
+      if (r < 0) {
+       goto out;
       }
+      r = r_len;
+      bufferlist u;
+      u.substr_of(t, front_extra, x_len);
+      bl.claim_append(u);
       offset += x_len;
       length -= x_len;
       if (x_off + x_len == bp->second.length) {