diff options
author | Maneesh Soni <maneesh@in.ibm.com> | 2005-07-29 12:14:19 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-07-29 13:12:49 -0700 |
commit | 9ca1eb3282b6050c295adb296761f8d26baf4ca5 (patch) | |
tree | 1750560628f01102186150f62791703ea3bde6e8 /fs/sysfs | |
parent | bc062b1b5c6bef4e3a29c7fda57967251d12beb0 (diff) | |
download | lwn-9ca1eb3282b6050c295adb296761f8d26baf4ca5.tar.gz lwn-9ca1eb3282b6050c295adb296761f8d26baf4ca5.zip |
[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.c | 2 |
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; |