lkml.org 
[lkml]   [2020]   [Feb]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 5.5 124/542] drivers/block/zram/zram_drv.c: fix error return codes not being returned in writeback_store
    Date
    From: Colin Ian King <colin.king@canonical.com>

    [ Upstream commit 3b82a051c10143639a378dcd12019f2353cc9054 ]

    Currently when an error code -EIO or -ENOSPC in the for-loop of
    writeback_store the error code is being overwritten by a ret = len
    assignment at the end of the function and the error codes are being
    lost. Fix this by assigning ret = len at the start of the function and
    remove the assignment from the end, hence allowing ret to be preserved
    when error codes are assigned to it.

    Addresses Coverity ("Unused value")

    Link: http://lkml.kernel.org/r/20191128122958.178290-1-colin.king@canonical.com
    Fixes: a939888ec38b ("zram: support idle/huge page writeback")
    Signed-off-by: Colin Ian King <colin.king@canonical.com>
    Acked-by: Minchan Kim <minchan@kernel.org>
    Cc: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
    Cc: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/block/zram/zram_drv.c | 3 +--
    1 file changed, 1 insertion(+), 2 deletions(-)

    diff --git a/drivers/block/zram/zram_drv.c b/drivers/block/zram/zram_drv.c
    index 4285e75e52c34..1bf4a908a0bd9 100644
    --- a/drivers/block/zram/zram_drv.c
    +++ b/drivers/block/zram/zram_drv.c
    @@ -626,7 +626,7 @@ static ssize_t writeback_store(struct device *dev,
    struct bio bio;
    struct bio_vec bio_vec;
    struct page *page;
    - ssize_t ret;
    + ssize_t ret = len;
    int mode;
    unsigned long blk_idx = 0;

    @@ -762,7 +762,6 @@ static ssize_t writeback_store(struct device *dev,

    if (blk_idx)
    free_block_bdev(zram, blk_idx);
    - ret = len;
    __free_page(page);
    release_init_lock:
    up_read(&zram->init_lock);
    --
    2.20.1
    \
     
     \ /
      Last update: 2020-02-14 19:16    [W:3.313 / U:1.084 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site