diff options
| -rw-r--r-- | fs/sysfs/inode.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/fs/sysfs/inode.c b/fs/sysfs/inode.c index 6a06a1d1ea7b..0d09f6c6efab 100644 --- a/fs/sysfs/inode.c +++ b/fs/sysfs/inode.c | |||
| @@ -111,20 +111,20 @@ int sysfs_setattr(struct dentry *dentry, struct iattr *iattr) | |||
| 111 | if (!sd) | 111 | if (!sd) |
| 112 | return -EINVAL; | 112 | return -EINVAL; |
| 113 | 113 | ||
| 114 | mutex_lock(&sysfs_mutex); | ||
| 114 | error = inode_change_ok(inode, iattr); | 115 | error = inode_change_ok(inode, iattr); |
| 115 | if (error) | 116 | if (error) |
| 116 | return error; | 117 | goto out; |
| 117 | 118 | ||
| 118 | iattr->ia_valid &= ~ATTR_SIZE; /* ignore size changes */ | 119 | iattr->ia_valid &= ~ATTR_SIZE; /* ignore size changes */ |
| 119 | 120 | ||
| 120 | error = inode_setattr(inode, iattr); | 121 | error = inode_setattr(inode, iattr); |
| 121 | if (error) | 122 | if (error) |
| 122 | return error; | 123 | goto out; |
| 123 | 124 | ||
| 124 | mutex_lock(&sysfs_mutex); | ||
| 125 | error = sysfs_sd_setattr(sd, iattr); | 125 | error = sysfs_sd_setattr(sd, iattr); |
| 126 | out: | ||
| 126 | mutex_unlock(&sysfs_mutex); | 127 | mutex_unlock(&sysfs_mutex); |
| 127 | |||
| 128 | return error; | 128 | return error; |
| 129 | } | 129 | } |
| 130 | 130 | ||
