lkml.org 
[lkml]   [2012]   [May]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[ 32/47] MD: Add del_timer_sync to mddev_suspend (fix nasty panic)
    3.3-stable review patch.  If anyone has any objections, please let me know.

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

    From: Jonathan Brassow <jbrassow@redhat.com>

    commit 0d9f4f135eb6dea06bdcb7065b1e4ff78274a5e9 upstream.

    Use del_timer_sync to remove timer before mddev_suspend finishes.

    We don't want a timer going off after an mddev_suspend is called. This is
    especially true with device-mapper, since it can call the destructor function
    immediately following a suspend. This results in the removal (kfree) of the
    structures upon which the timer depends - resulting in a very ugly panic.
    Therefore, we add a del_timer_sync to mddev_suspend to prevent this.

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

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

    --- a/drivers/md/md.c
    +++ b/drivers/md/md.c
    @@ -391,6 +391,8 @@ void mddev_suspend(struct mddev *mddev)
    synchronize_rcu();
    wait_event(mddev->sb_wait, atomic_read(&mddev->active_io) == 0);
    mddev->pers->quiesce(mddev, 1);
    +
    + del_timer_sync(&mddev->safemode_timer);
    }
    EXPORT_SYMBOL_GPL(mddev_suspend);




    \
     
     \ /
      Last update: 2012-05-19 02:01    [W:5.220 / U:1.024 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site