projects
/
GitHub
/
LineageOS
/
android_kernel_samsung_universal7580.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
c5d79ad
)
md: lock address when changing attributes of component devices
author
NeilBrown
<neilb@suse.de>
Wed, 6 Feb 2008 09:39:55 +0000
(
01:39
-0800)
committer
Linus Torvalds
<torvalds@woody.linux-foundation.org>
Wed, 6 Feb 2008 18:41:18 +0000
(10:41 -0800)
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>
drivers/md/md.c
patch
|
blob
|
blame
|
history
diff --git
a/drivers/md/md.c
b/drivers/md/md.c
index 7c9a87b02e7784259d751ed9a57ce02f4a7409a1..39757566f39b996d884562cdbbda03dd68ee7175 100644
(file)
--- a/
drivers/md/md.c
+++ b/
drivers/md/md.c
@@
-2075,12
+2075,18
@@
rdev_attr_store(struct kobject *kobj, struct attribute *attr,
{
struct rdev_sysfs_entry *entry = container_of(attr, struct rdev_sysfs_entry, attr);
mdk_rdev_t *rdev = container_of(kobj, mdk_rdev_t, kobj);
+ int rv;
if (!entry->store)
return -EIO;
if (!capable(CAP_SYS_ADMIN))
return -EACCES;
- return entry->store(rdev, page, length);
+ rv = mddev_lock(rdev->mddev);
+ if (!rv) {
+ rv = entry->store(rdev, page, length);
+ mddev_unlock(rdev->mddev);
+ }
+ return rv;
}
static void rdev_free(struct kobject *ko)