]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osdc/Striper.cc fix stripe_count == 1 && stripe_unit != object_size 4211/head
authorYan, Zheng <zyan@redhat.com>
Mon, 30 Mar 2015 03:22:09 +0000 (11:22 +0800)
committerYan, Zheng <zyan@redhat.com>
Mon, 30 Mar 2015 03:30:35 +0000 (11:30 +0800)
Fixes:11120
Signed-off-by: Yan, Zheng <zyan@redhat.com>
src/osdc/Striper.cc

index cca7686ca90c2a036a6043ac0a48e68318672a45..a8682ded99bfc0e202876fb1486b7cb8e2ab49c6 100644 (file)
@@ -59,6 +59,10 @@ void Striper::file_to_extents(CephContext *cct, const char *object_format,
   __u32 su = layout->fl_stripe_unit;
   __u32 stripe_count = layout->fl_stripe_count;
   assert(object_size >= su);
+  if (stripe_count == 1) {
+    ldout(cct, 20) << " sc is one, reset su to os" << dendl;
+    su = object_size;
+  }
   uint64_t stripes_per_object = object_size / su;
   ldout(cct, 20) << " su " << su << " sc " << stripe_count << " os " << object_size
                 << " stripes_per_object " << stripes_per_object << dendl;