lkml.org 
[lkml]   [2016]   [Mar]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.2.y-ckt 096/218] dm thin metadata: don't issue prefetches if a transaction abort has failed
    Date
    4.2.8-ckt7 -stable review patch.  If anyone has any objections, please let me know.

    ---8<------------------------------------------------------------

    From: Joe Thornber <ejt@redhat.com>

    commit 2eae9e4489b4cf83213fa3bd508b5afca3f01780 upstream.

    If a transaction abort has failed then we can no longer use the metadata
    device. Typically this happens if the superblock is unreadable.

    This fix addresses a crash seen during metadata device failure testing.

    Fixes: 8a01a6af75 ("dm thin: prefetch missing metadata pages")
    Signed-off-by: Joe Thornber <ejt@redhat.com>
    Signed-off-by: Mike Snitzer <snitzer@redhat.com>
    Signed-off-by: Kamal Mostafa <kamal@canonical.com>
    ---
    drivers/md/dm-thin-metadata.c | 5 ++++-
    1 file changed, 4 insertions(+), 1 deletion(-)

    diff --git a/drivers/md/dm-thin-metadata.c b/drivers/md/dm-thin-metadata.c
    index 4479e90..dbce0df 100644
    --- a/drivers/md/dm-thin-metadata.c
    +++ b/drivers/md/dm-thin-metadata.c
    @@ -1935,5 +1935,8 @@ bool dm_pool_metadata_needs_check(struct dm_pool_metadata *pmd)

    void dm_pool_issue_prefetches(struct dm_pool_metadata *pmd)
    {
    - dm_tm_issue_prefetches(pmd->tm);
    + down_read(&pmd->root_lock);
    + if (!pmd->fail_io)
    + dm_tm_issue_prefetches(pmd->tm);
    + up_read(&pmd->root_lock);
    }
    --
    2.7.4
    \
     
     \ /
      Last update: 2016-03-31 23:21    [W:4.619 / U:0.592 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site