lkml.org 
[lkml]   [2012]   [Apr]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[ 33/62] md: fix possible corruption of array metadata on shutdown.
    3.3-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: NeilBrown <neilb@suse.de>

    commit 30b8aa9172dfeaac6d77897c67ee9f9fc574cdbb upstream.

    commit c744a65c1e2d59acc54333ce8
    md: don't set md arrays to readonly on shutdown.

    removed the possibility of a 'BUG' when data is written to an array
    that has just been switched to read-only, but also introduced the
    possibility that the array metadata could be corrupted.

    If, when md_notify_reboot gets the mddev lock, the array is
    in a state where it is assembled but hasn't been started (as can
    happen if the personality module is not available, or in other unusual
    situations), then incorrect metadata will be written out making it
    impossible to re-assemble the array.

    So only call __md_stop_writes() if the array has actually been
    activated.

    This patch is needed for any stable kernel which has had the above
    commit applied.

    Reported-by: Christoph Nelles <evilazrael@evilazrael.de>
    Signed-off-by: NeilBrown <neilb@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/md/md.c | 3 ++-
    1 file changed, 2 insertions(+), 1 deletion(-)

    --- a/drivers/md/md.c
    +++ b/drivers/md/md.c
    @@ -8160,7 +8160,8 @@ static int md_notify_reboot(struct notif

    for_each_mddev(mddev, tmp) {
    if (mddev_trylock(mddev)) {
    - __md_stop_writes(mddev);
    + if (mddev->pers)
    + __md_stop_writes(mddev);
    mddev->safemode = 2;
    mddev_unlock(mddev);
    }



    \
     
     \ /
      Last update: 2012-04-25 00:41    [W:4.044 / U:0.088 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site