bcache: move definition of 'int ret' out of macro read_bucket()
authorColy Li <colyli@suse.de>
Wed, 24 Apr 2019 16:48:32 +0000 (00:48 +0800)
committerJens Axboe <axboe@kernel.dk>
Wed, 24 Apr 2019 16:56:27 +0000 (10:56 -0600)
'int ret' is defined as a local variable inside macro read_bucket().
Since this macro is called multiple times, and following patches will
use a 'int ret' variable in bch_journal_read(), this patch moves
definition of 'int ret' from macro read_bucket() to range of function
bch_journal_read().

Signed-off-by: Coly Li <colyli@suse.de>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/md/bcache/journal.c

index b2fd412715b1f810a0e9dbb19e522884f9bd879e..6e18057d1d8296c43fe258dc12757e0b2e4961e0 100644 (file)
@@ -147,7 +147,7 @@ int bch_journal_read(struct cache_set *c, struct list_head *list)
 {
 #define read_bucket(b)                                                 \
        ({                                                              \
-               int ret = journal_read_bucket(ca, list, b);             \
+               ret = journal_read_bucket(ca, list, b);                 \
                __set_bit(b, bitmap);                                   \
                if (ret < 0)                                            \
                        return ret;                                     \
@@ -156,6 +156,7 @@ int bch_journal_read(struct cache_set *c, struct list_head *list)
 
        struct cache *ca;
        unsigned int iter;
+       int ret = 0;
 
        for_each_cache(ca, c, iter) {
                struct journal_device *ja = &ca->journal;
@@ -267,7 +268,7 @@ bsearch:
                                            struct journal_replay,
                                            list)->j.seq;
 
-       return 0;
+       return ret;
 #undef read_bucket
 }