lkml.org 
[lkml]   [2017]   [Aug]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 02/17] drbd: change list_for_each_safe to while(list_first_entry_or_null)
    Date
    From: Lars Ellenberg <lars.ellenberg@linbit.com>

    Two instances of list_for_each_safe can drop their tmp element, they
    really just peel off each element in turn from the start of the list.

    Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
    Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>

    diff --git a/drivers/block/drbd/drbd_req.c b/drivers/block/drbd/drbd_req.c
    index 5955ab8..85e05ee 100644
    --- a/drivers/block/drbd/drbd_req.c
    +++ b/drivers/block/drbd/drbd_req.c
    @@ -1485,12 +1485,12 @@ static bool prepare_al_transaction_nonblock(struct drbd_device *device,
    struct list_head *pending,
    struct list_head *later)
    {
    - struct drbd_request *req, *tmp;
    + struct drbd_request *req;
    int wake = 0;
    int err;

    spin_lock_irq(&device->al_lock);
    - list_for_each_entry_safe(req, tmp, incoming, tl_requests) {
    + while ((req = list_first_entry_or_null(incoming, struct drbd_request, tl_requests))) {
    err = drbd_al_begin_io_nonblock(device, &req->i);
    if (err == -ENOBUFS)
    break;
    @@ -1509,9 +1509,9 @@ static bool prepare_al_transaction_nonblock(struct drbd_device *device,

    void send_and_submit_pending(struct drbd_device *device, struct list_head *pending)
    {
    - struct drbd_request *req, *tmp;
    + struct drbd_request *req;

    - list_for_each_entry_safe(req, tmp, pending, tl_requests) {
    + while ((req = list_first_entry_or_null(pending, struct drbd_request, tl_requests))) {
    req->rq_state |= RQ_IN_ACT_LOG;
    req->in_actlog_jif = jiffies;
    atomic_dec(&device->ap_actlog_cnt);
    --
    2.7.4
    \
     
     \ /
      Last update: 2017-08-24 23:28    [W:4.984 / U:0.172 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site