drbd: also keep track of trim -> zero-out fallback peer_requests
authorLars Ellenberg <lars.ellenberg@linbit.com>
Wed, 23 Apr 2014 10:25:23 +0000 (12:25 +0200)
committerPhilipp Reisner <philipp.reisner@linbit.com>
Thu, 10 Jul 2014 16:35:09 +0000 (18:35 +0200)
To be able to find and present such zero-out fallback peer_requests
in debugfs, we add those to "active_ee", once that list drained.

Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
drivers/block/drbd/drbd_receiver.c

index db5c580..7a1078d 100644 (file)
@@ -1370,6 +1370,11 @@ int drbd_submit_peer_request(struct drbd_device *device,
                /* wait for all pending IO completions, before we start
                 * zeroing things out. */
                conn_wait_active_ee_empty(first_peer_device(device)->connection);
+               /* add it to the active list now,
+                * so we can find it to present it in debugfs */
+               spin_lock_irq(&device->resource->req_lock);
+               list_add_tail(&peer_req->w.list, &device->active_ee);
+               spin_unlock_irq(&device->resource->req_lock);
                if (blkdev_issue_zeroout(device->ldev->backing_bdev,
                        sector, ds >> 9, GFP_NOIO))
                        peer_req->flags |= EE_WAS_ERROR;