Please try applying this, on top of the previous patch.
If you can then reproduce the problem we'll have a bunch
of new information about the particular request that's
leading to the failure. That might tell us what more we
can do to find the root cause. Thank you.
-Alex
PS I hope my mailer doesn't botch the long lines. It might.
---
drivers/block/rbd.c | 25 ++++++++++++++++++++++++-
1 file changed, 24 insertions(+), 1 deletion(-)
Index: b/drivers/block/rbd.c
===================================================================
--- a/drivers/block/rbd.c
+++ b/drivers/block/rbd.c
@@ -2132,7 +2132,30 @@ static void rbd_img_obj_callback(struct
spin_lock_irq(&img_request->completion_lock);
if (which > img_request->next_completion)
goto out;
- rbd_assert(which == img_request->next_completion);
+ if (which != img_request->next_completion) {
+ printk("%s: bad image object request information:\n", __func__);
+ printk("obj_request %p\n", obj_request);
+ printk(" ->object_name <%s>\n", obj_request->object_name);
+ printk(" ->offset %llu\n", obj_request->offset);
+ printk(" ->length %llu\n", obj_request->length);
+ printk(" ->type 0x%x\n", (u32)obj_request->type);
+ printk(" ->flags 0x%lx\n", obj_request->flags);
+ printk(" ->which %u\n", obj_request->which);
+ printk(" ->xferred %llu\n", obj_request->xferred);
+ printk(" ->result %d\n", obj_request->result);
+
+ printk("img_request %p\n", img_request);
+ printk(" ->snap 0x%016llx\n", img_request->snap_id);
+ printk(" ->offset %llu\n", img_request->offset);
+ printk(" ->length %llu\n", img_request->length);
+ printk(" ->flags 0x%lx\n", img_request->flags);
+ printk(" ->obj_request_count %u\n",
+ img_request->obj_request_count);
+ printk(" ->next_completion %u\n",
+ img_request->next_completion);
+ printk(" ->xferred %llu\n", img_request->xferred);
+ printk(" ->result %d\n", img_request->result);
+ }
for_each_obj_request_from(img_request, obj_request) {
rbd_assert(more);
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html