drbd: consistently use list_add_tail for peer_request tracking
authorLars Ellenberg <lars.ellenberg@linbit.com>
Wed, 23 Apr 2014 10:15:35 +0000 (12:15 +0200)
committerPhilipp Reisner <philipp.reisner@linbit.com>
Thu, 10 Jul 2014 16:35:08 +0000 (18:35 +0200)
Keep the epoch entry lists (active_ee, read_ee, sync_ee, ...)
consistently "oldest first".  That way finding the oldest not yet
successfully processed request is simply list_first_entry_or_null.

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

index 3a3c4893ea26336258a1d747470bc68d4535b7e3..db5c58042734a7b2a60bfc48d55ad786e83094e6 100644 (file)
@@ -1777,7 +1777,7 @@ static int recv_resync_read(struct drbd_peer_device *peer_device, sector_t secto
        peer_req->w.cb = e_end_resync_block;
 
        spin_lock_irq(&device->resource->req_lock);
-       list_add(&peer_req->w.list, &device->sync_ee);
+       list_add_tail(&peer_req->w.list, &device->sync_ee);
        spin_unlock_irq(&device->resource->req_lock);
 
        atomic_add(pi->size >> 9, &device->rs_sect_ev);
@@ -2341,7 +2341,7 @@ static int receive_Data(struct drbd_connection *connection, struct packet_info *
         * active_ee to become empty in drbd_submit_peer_request();
         * better not add ourselves here. */
        if ((peer_req->flags & EE_IS_TRIM_USE_ZEROOUT) == 0)
-               list_add(&peer_req->w.list, &device->active_ee);
+               list_add_tail(&peer_req->w.list, &device->active_ee);
        spin_unlock_irq(&device->resource->req_lock);
 
        if (device->state.conn == C_SYNC_TARGET)
index 49b88731b349eefc10e32a9a161441d6f33af42a..ad57129289b50a022db294a633c618e0c17c142f 100644 (file)
@@ -410,7 +410,7 @@ static int read_for_csum(struct drbd_peer_device *peer_device, sector_t sector,
 
        peer_req->w.cb = w_e_send_csum;
        spin_lock_irq(&device->resource->req_lock);
-       list_add(&peer_req->w.list, &device->read_ee);
+       list_add_tail(&peer_req->w.list, &device->read_ee);
        spin_unlock_irq(&device->resource->req_lock);
 
        atomic_add(size >> 9, &device->rs_sect_ev);