May be we should make this as an inline function instead of macro ?
Reason being:-
1. It is not a simple substitution.
2. It has multiple function calls.
3. With this patch it is now dependent on local variable declared
    outside of macro.

Any thoughts ?


On 04/19/2019 11:24 AM, Coly Li wrote:
> '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 <[email protected]>
> ---
>   drivers/md/bcache/journal.c | 5 +++--
>   1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/md/bcache/journal.c b/drivers/md/bcache/journal.c
> index b2fd412715b1..6e18057d1d82 100644
> --- a/drivers/md/bcache/journal.c
> +++ b/drivers/md/bcache/journal.c
> @@ -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 @@ int bch_journal_read(struct cache_set *c, struct 
> list_head *list)
>                                           struct journal_replay,
>                                           list)->j.seq;
>
> -     return 0;
> +     return ret;
>   #undef read_bucket
>   }
>
>

Reply via email to