]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
md: fix use after free when removing rdev via sysfs
authorDan Williams <dan.j.williams@intel.com>
Wed, 30 Apr 2008 18:55:30 +0000 (18:55 +0000)
committerGreg Kroah-Hartman <gregkh@suse.de>
Sat, 10 May 2008 04:40:43 +0000 (21:40 -0700)
commit: 6a51830e14529063cb2685921e1177d9af50e49a upstream

rdev->mddev is no longer valid upon return from entry->store() when the
'remove' command is given.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/md/md.c

index 61ccbd2683fa215aeddb0363bd6ddcb621bc85ac..9f6d228b56073d8baeefc78ba4986675f7c184a3 100644 (file)
@@ -2096,7 +2096,7 @@ rdev_attr_store(struct kobject *kobj, struct attribute *attr,
                        rv = -EBUSY;
                else
                        rv = entry->store(rdev, page, length);
-               mddev_unlock(rdev->mddev);
+               mddev_unlock(mddev);
        }
        return rv;
 }