summaryrefslogtreecommitdiff
path: root/fs/sysfs
diff options
context:
space:
mode:
authorManeesh Soni <maneesh@in.ibm.com>2005-07-29 23:14:19 +0400
committerLinus Torvalds <torvalds@g5.osdl.org>2005-07-30 00:12:49 +0400
commit9ca1eb3282b6050c295adb296761f8d26baf4ca5 (patch)
tree1750560628f01102186150f62791703ea3bde6e8 /fs/sysfs
parentbc062b1b5c6bef4e3a29c7fda57967251d12beb0 (diff)
downloadlinux-9ca1eb3282b6050c295adb296761f8d26baf4ca5.tar.xz
[PATCH] sysfs: fix sysfs_setattr
o sysfs_dirent's s_mode field should also be updated in sysfs_setattr(), else there could be inconsistency in the two fields. s_mode is used while ->readdir so as not to bring in the inode to cache. Signed-off-by: Maneesh Soni <maneesh@in.ibm.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'fs/sysfs')
-rw-r--r--fs/sysfs/inode.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/sysfs/inode.c b/fs/sysfs/inode.c
index 8de13bafaa76..d727dc960634 100644
--- a/fs/sysfs/inode.c
+++ b/fs/sysfs/inode.c
@@ -85,7 +85,7 @@ int sysfs_setattr(struct dentry * dentry, struct iattr * iattr)
if (!in_group_p(inode->i_gid) && !capable(CAP_FSETID))
mode &= ~S_ISGID;
- sd_iattr->ia_mode = mode;
+ sd_iattr->ia_mode = sd->s_mode = mode;
}
return error;