[PATCH 03/15] sysfs: fix sysfs_chmod_file() such that it updates sd->s_mode too

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: <ebiederm@...>, <cornelia.huck@...>, <greg@...>, <stern@...>, <kay.sievers@...>, <linux-kernel@...>, <htejun@...>
Cc: Tejun Heo <htejun@...>
Date: Thursday, September 20, 2007 - 3:05 am

sysfs_chmod_file() looked and updated only inode of the target file.
Dentry and inode are reclaimable and the update mode data will go away
when the inode is reclaimed.  This patch makes sysfs_chmod_file()
update sd->s_mode too such that the change is permanent.

Signed-off-by: Tejun Heo <htejun@gmail.com>
---
 fs/sysfs/file.c |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/fs/sysfs/file.c b/fs/sysfs/file.c
index ff93c92..9fdf8da 100644
--- a/fs/sysfs/file.c
+++ b/fs/sysfs/file.c
@@ -521,10 +521,19 @@ int sysfs_chmod_file(struct kobject *kobj, struct attribute *attr, mode_t mode)
 	}
 
 	inode = victim->d_inode;
+
 	mutex_lock(&inode->i_mutex);
+
 	newattrs.ia_mode = (mode & S_IALLUGO) | (inode->i_mode & ~S_IALLUGO);
 	newattrs.ia_valid = ATTR_MODE | ATTR_CTIME;
 	rc = notify_change(victim, &newattrs);
+
+	if (rc == 0) {
+		mutex_lock(&sysfs_mutex);
+		victim_sd->s_mode = newattrs.ia_mode;
+		mutex_unlock(&sysfs_mutex);
+	}
+
 	mutex_unlock(&inode->i_mutex);
  out:
 	dput(victim);
-- 
1.5.0.3


-
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCHSET 1/4] sysfs: misc updates, Tejun Heo, (Thu Sep 20, 3:05 am)
Re: [PATCHSET 1/4] sysfs: misc updates, Cornelia Huck, (Wed Sep 26, 7:04 am)
Re: [PATCHSET 1/4] sysfs: misc updates, Greg KH, (Wed Sep 26, 11:19 am)
[PATCH 14/15] sysfs: implement sysfs_open_dirent, Tejun Heo, (Thu Sep 20, 3:05 am)
[PATCH 10/15] sysfs: make s_elem an anonymous union, Tejun Heo, (Thu Sep 20, 3:05 am)
[PATCH 05/15] sysfs: kill sysfs_update_file(), Tejun Heo, (Thu Sep 20, 3:05 am)
[PATCH 04/15] sysfs: clean up header files, Tejun Heo, (Thu Sep 20, 3:05 am)
[PATCH 01/15] sysfs: kill SYSFS_FLAG_REMOVED, Tejun Heo, (Thu Sep 20, 3:05 am)
Re: [PATCH 01/15] sysfs: kill SYSFS_FLAG_REMOVED, Greg KH, (Tue Sep 25, 5:32 pm)
[PATCH 03/15] sysfs: fix sysfs_chmod_file() such that it upd..., Tejun Heo, (Thu Sep 20, 3:05 am)