From: NeilBrown Date: Mon, 17 May 2010 01:27:00 +0000 (+1000) Subject: md/linear: avoid possible oops and array stop X-Git-Tag: v2.6.34.1~114 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=784400c5bf5ded58e79d935e9d2ddc989ba4fb30;p=thirdparty%2Fkernel%2Fstable.git md/linear: avoid possible oops and array stop commit ef2f80ff7325b2c1888ff02ead28957b5840bf51 upstream. Since commit ef286f6fa673cd7fb367e1b145069d8dbfcc6081 it has been important that each personality clears ->private in the ->stop() function, or sets it to a attribute group to be removed. linear.c doesn't. This can sometimes lead to an oops, though it doesn't always. Suitable for 2.6.33-stable and 2.6.34. Signed-off-by: NeilBrown Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/md/linear.c b/drivers/md/linear.c index 09437e958235e..0a1042b1f83a0 100644 --- a/drivers/md/linear.c +++ b/drivers/md/linear.c @@ -282,6 +282,7 @@ static int linear_stop (mddev_t *mddev) rcu_barrier(); blk_sync_queue(mddev->queue); /* the unplug fn references 'conf'*/ kfree(conf); + mddev->private = NULL; return 0; }