lkml.org 
[lkml]   [2022]   [Apr]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.17 0115/1126] dm integrity: set journal entry unused when shrinking device
    Date
    From: Mikulas Patocka <mpatocka@redhat.com>

    commit cc09e8a9dec4f0e8299e80a7a2a8e6f54164a10b upstream.

    Commit f6f72f32c22c ("dm integrity: don't replay journal data past the
    end of the device") skips journal replay if the target sector points
    beyond the end of the device. Unfortunatelly, it doesn't set the
    journal entry unused, which resulted in this BUG being triggered:
    BUG_ON(!journal_entry_is_unused(je))

    Fix this by calling journal_entry_set_unused() for this case.

    Fixes: f6f72f32c22c ("dm integrity: don't replay journal data past the end of the device")
    Cc: stable@vger.kernel.org # v5.7+
    Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
    Tested-by: Milan Broz <gmazyland@gmail.com>
    [snitzer: revised header]
    Signed-off-by: Mike Snitzer <snitzer@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    drivers/md/dm-integrity.c | 6 ++++--
    1 file changed, 4 insertions(+), 2 deletions(-)

    --- a/drivers/md/dm-integrity.c
    +++ b/drivers/md/dm-integrity.c
    @@ -2473,9 +2473,11 @@ static void do_journal_write(struct dm_i
    dm_integrity_io_error(ic, "invalid sector in journal", -EIO);
    sec &= ~(sector_t)(ic->sectors_per_block - 1);
    }
    + if (unlikely(sec >= ic->provided_data_sectors)) {
    + journal_entry_set_unused(je);
    + continue;
    + }
    }
    - if (unlikely(sec >= ic->provided_data_sectors))
    - continue;
    get_area_and_offset(ic, sec, &area, &offset);
    restore_last_bytes(ic, access_journal_data(ic, i, j), je);
    for (k = j + 1; k < ic->journal_section_entries; k++) {

    \
     
     \ /
      Last update: 2022-04-05 09:52    [W:5.045 / U:0.072 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site