From: Tejun Heo <[email protected]> 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 <[email protected]> Acked-by: Cornelia Huck <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]> --- 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.3.4 - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
- Follow-Ups:
- [PATCH 55/75] sysfs: clean up header files
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 55/75] sysfs: clean up header files
- References:
- [PATCH 01/75] platform: prefix MODALIAS with "platform:"
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 02/75] HOWTO: update ja_JP/HOWTO with latest changes
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 03/75] Driver core: make sysfs uevent-attributes static
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 04/75] Driver core: change add_uevent_var to use a struct
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 05/75] Driver core: add CONFIG_UEVENT_HELPER_PATH
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 06/75] Driver core: remove subsys_set_kset
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 07/75] Driver core: remove kset_set_kset_s
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 08/75] Driver core: remove subsys_put()
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 09/75] Driver core: remove subsys_get()
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 10/75] Driver core: remove put_bus()
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 11/75] Driver core: remove get_bus()
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 12/75] kobjects: fix up improper use of the kobject name field
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 13/75] cdev: remove unneeded setting of cdev names
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 14/75] Drivers: clean up direct setting of the name of a kset
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 15/75] kobject: remove the static array for the name
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 16/75] Driver core: clean up removed functions from the documentation
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 17/75] debugfs: helper for decimal challenged
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 18/75] sysfs/file.c - use mutex instead of semaphore
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 19/75] sysfs: cleanup semaphore.h
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 20/75] sysfs: Remove first pass at shadow directory support
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 21/75] sysfs: cosmetic changes in sysfs_lookup()
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 22/75] sysfs: simplify sysfs_rename_dir()
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 23/75] sysfs: make sysfs_add/remove_one() call link/unlink_sibling() implictly
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 24/75] sysfs: make sysfs_add_one() automatically check for duplicate entry
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 25/75] sysfs: make sysfs_addrm_finish() return void
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 26/75] dmi-id: Use dynamic sysfs attributes
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 27/75] dmi-id: Possible cleanup
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 28/75] Convert from class_device to device for drivers/video
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 29/75] Convert from class_device to device in drivers/char
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 30/75] Driver core: exclude kobject_uevent.c for !CONFIG_HOTPLUG
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 31/75] Driver core: add uevent file for bus and driver
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 32/75] Driver core: kerneldoc - kobject_uevent_env is not "usually KOBJ_MOVE"
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 33/75] Fix Firmware class name collision
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 34/75] drivers/base/power/: make 2 functions static
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 35/75] sysfs: Fix typos in fs/sysfs/file.c
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 36/75] sysdev: remove global sysdev drivers list
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 37/75] Driver core: Make platform_device.id an int
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 38/75] sysfs: fix i_mutex locking in sysfs_get_dentry()
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 39/75] sysfs: Move all of inode initialization into sysfs_init_inode
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 40/75] sysfs: Remove sysfs_instantiate
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 41/75] sysfs: Use kill_anon_super
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 42/75] sysfs: Make sysfs_mount static
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 43/75] sysfs: In sysfs_lookup don't open code sysfs_find_dirent
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 44/75] sysfs: Simplify readdir.
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 45/75] sysfs: Rewrite sysfs_drop_dentry.
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 46/75] sysfs: Introduce sysfs_rename_mutex
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 47/75] sysfs: simply sysfs_get_dentry
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 48/75] sysfs: Remove s_dentry
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 49/75] sysfs: Rewrite rename in terms of sysfs dirents
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 50/75] sysfs: Rewrite sysfs_move_dir in terms of sysfs dirents
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 51/75] PTY: add kernel parameter to overwrite legacy pty count
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 52/75] sysfs: spit a warning to users when they try to create a duplicate sysfs file
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 53/75] sysfs: fix comments of sysfs_add/remove_one()
- From: Greg Kroah-Hartman <[email protected]>
- [PATCH 01/75] platform: prefix MODALIAS with "platform:"
- Prev by Date: [PATCH 53/75] sysfs: fix comments of sysfs_add/remove_one()
- Next by Date: [PATCH 55/75] sysfs: clean up header files
- Previous by thread: [PATCH 53/75] sysfs: fix comments of sysfs_add/remove_one()
- Next by thread: [PATCH 55/75] sysfs: clean up header files
- Index(es):