lkml.org 
[lkml]   [2018]   [Dec]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Date
    Subject[PATCH 3.16 265/328] bcache: don't embed 'return' statements in closure macros
    3.16.62-rc1 review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Jens Axboe <axboe@fb.com>

    commit 77b5a08427e87514c33730afc18cd02c9475e2c3 upstream.

    This is horribly confusing, it breaks the flow of the code without
    it being apparent in the caller.

    Signed-off-by: Jens Axboe <axboe@fb.com>
    Acked-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    ---
    drivers/md/bcache/closure.h | 3 ---
    drivers/md/bcache/io.c | 1 +
    drivers/md/bcache/journal.c | 2 ++
    drivers/md/bcache/request.c | 14 +++++++++++---
    4 files changed, 14 insertions(+), 6 deletions(-)

    --- a/drivers/md/bcache/closure.h
    +++ b/drivers/md/bcache/closure.h
    @@ -320,7 +320,6 @@ static inline void closure_wake_up(struc
    do { \
    set_closure_fn(_cl, _fn, _wq); \
    closure_sub(_cl, CLOSURE_RUNNING + 1); \
    - return; \
    } while (0)

    /**
    @@ -349,7 +348,6 @@ do { \
    do { \
    set_closure_fn(_cl, _fn, _wq); \
    closure_queue(_cl); \
    - return; \
    } while (0)

    /**
    @@ -365,7 +363,6 @@ do { \
    do { \
    set_closure_fn(_cl, _destructor, NULL); \
    closure_sub(_cl, CLOSURE_RUNNING - CLOSURE_DESTRUCTOR + 1); \
    - return; \
    } while (0)

    /**
    --- a/drivers/md/bcache/io.c
    +++ b/drivers/md/bcache/io.c
    @@ -105,6 +105,7 @@ void bch_generic_make_request(struct bio
    } while (n != bio);

    continue_at(&s->cl, bch_bio_submit_split_done, NULL);
    + return;
    submit:
    generic_make_request(bio);
    }
    --- a/drivers/md/bcache/journal.c
    +++ b/drivers/md/bcache/journal.c
    @@ -586,12 +586,14 @@ static void journal_write_unlocked(struc

    if (!w->need_write) {
    closure_return_with_destructor(cl, journal_write_unlock);
    + return;
    } else if (journal_full(&c->journal)) {
    journal_reclaim(c);
    spin_unlock(&c->journal.lock);

    btree_flush_write(c);
    continue_at(cl, journal_write, system_wq);
    + return;
    }

    c->journal.blocks_free -= set_blocks(w->data, block_bytes(c));
    --- a/drivers/md/bcache/request.c
    +++ b/drivers/md/bcache/request.c
    @@ -87,8 +87,10 @@ static void bch_data_insert_keys(struct
    if (journal_ref)
    atomic_dec_bug(journal_ref);

    - if (!op->insert_data_done)
    + if (!op->insert_data_done) {
    continue_at(cl, bch_data_insert_start, op->wq);
    + return;
    + }

    bch_keylist_free(&op->insert_keys);
    closure_return(cl);
    @@ -215,8 +217,10 @@ static void bch_data_insert_start(struct
    /* 1 for the device pointer and 1 for the chksum */
    if (bch_keylist_realloc(&op->insert_keys,
    3 + (op->csum ? 1 : 0),
    - op->c))
    + op->c)) {
    continue_at(cl, bch_data_insert_keys, op->wq);
    + return;
    + }

    k = op->insert_keys.top;
    bkey_init(k);
    @@ -254,6 +258,7 @@ static void bch_data_insert_start(struct

    op->insert_data_done = true;
    continue_at(cl, bch_data_insert_keys, op->wq);
    + return;
    err:
    /* bch_alloc_sectors() blocks if s->writeback = true */
    BUG_ON(op->writeback);
    @@ -568,8 +573,10 @@ static void cache_lookup(struct closure
    ret = bch_btree_map_keys(&s->op, s->iop.c,
    &KEY(s->iop.inode, bio->bi_iter.bi_sector, 0),
    cache_lookup_fn, MAP_END_KEY);
    - if (ret == -EAGAIN)
    + if (ret == -EAGAIN) {
    continue_at(cl, cache_lookup, bcache_wq);
    + return;
    + }

    closure_return(cl);
    }
    @@ -1095,6 +1102,7 @@ static void flash_dev_make_request(struc
    continue_at_nobarrier(&s->cl,
    flash_dev_nodata,
    bcache_wq);
    + return;
    } else if (rw) {
    bch_keybuf_check_overlapping(&s->iop.c->moving_gc_keys,
    &KEY(d->id, bio->bi_iter.bi_sector, 0),
    \
     
     \ /
      Last update: 2018-12-09 23:01    [W:4.225 / U:0.096 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site