From: <gregkh@suse.de>
To: ebiederm@xmission.com, akpm@linux-foundation.org,
benjamin.thery@bull.net, containers@lists.osdl.org,
dlezcano@fr.ibm.com, gregkh@suse.de, htejun@gmail.com,
netdev@vger.kernel.org, tj
Subject: patch sysfs-sysfs_chmod_file-handle-multiple-superblocks.patch added to gregkh-2.6 tree
Date: Tue, 19 Aug 2008 19:16:35 -0700 [thread overview]
Message-ID: <12191985952666@kroah.org> (raw)
In-Reply-To: <m14p76ih9a.fsf_-_@frodo.ebiederm.org>
This is a note to let you know that I've just added the patch titled
Subject: sysfs: sysfs_chmod_file handle multiple superblocks
to my gregkh-2.6 tree. Its filename is
sysfs-sysfs_chmod_file-handle-multiple-superblocks.patch
This tree can be found at
http://www.kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/patches/
>From ebiederm@xmission.com Thu Jul 3 18:21:56 2008
From: Eric W. Biederman <ebiederm@xmission.com>
Date: Thu, 03 Jul 2008 18:13:05 -0700
Subject: sysfs: sysfs_chmod_file handle multiple superblocks
To: Greg Kroah-Hartman <gregkh@suse.de>, Andrew Morton <akpm@linux-foundation.org>
Cc: Tejun Heo <htejun@gmail.com>, Daniel Lezcano <dlezcano@fr.ibm.com>, linux-kernel@vger.kernel.org, Al Viro <viro@ftp.linux.org.uk>, Linux Containers <containers@lists.osdl.org>, Benjamin Thery <benjamin.thery@bull.net>, <netdev@vger.kernel.org>
Message-ID: <m14p76ih9a.fsf_-_@frodo.ebiederm.org>
From: Eric W. Biederman <ebiederm@xmission.com>
Teach sysfs_chmod_file how to handle multiple sysfs superblocks.
Since we only have one inode per sd the only thing we have to deal
with is multiple dentries for sending fs notifications. This might
dup the inode notifications oh well.
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Acked-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
fs/sysfs/file.c | 39 +++++++++++++++++++++++++--------------
1 file changed, 25 insertions(+), 14 deletions(-)
--- a/fs/sysfs/file.c
+++ b/fs/sysfs/file.c
@@ -578,8 +578,8 @@ EXPORT_SYMBOL_GPL(sysfs_add_file_to_grou
int sysfs_chmod_file(struct kobject *kobj, struct attribute *attr, mode_t mode)
{
struct sysfs_dirent *victim_sd = NULL;
- struct dentry *victim = NULL;
- struct inode * inode;
+ struct super_block *sb;
+ struct inode * inode = NULL;
struct iattr newattrs;
int rc;
@@ -588,31 +588,42 @@ int sysfs_chmod_file(struct kobject *kob
if (!victim_sd)
goto out;
- mutex_lock(&sysfs_rename_mutex);
- victim = sysfs_get_dentry(sysfs_sb, victim_sd);
- mutex_unlock(&sysfs_rename_mutex);
- if (IS_ERR(victim)) {
- rc = PTR_ERR(victim);
- victim = NULL;
- goto out;
- }
-
- inode = victim->d_inode;
+ rc = -ENOENT;
+ mutex_lock(&sysfs_mutex);
+ inode = sysfs_get_inode(victim_sd);
+ mutex_unlock(&sysfs_mutex);
+ if (!inode)
+ goto out;
+ mutex_lock(&sysfs_rename_mutex);
+ sysfs_grab_supers();
mutex_lock(&inode->i_mutex);
newattrs.ia_mode = (mode & S_IALLUGO) | (inode->i_mode & ~S_IALLUGO);
newattrs.ia_valid = ATTR_MODE | ATTR_CTIME;
newattrs.ia_ctime = current_fs_time(inode->i_sb);
rc = sysfs_sd_setattr(victim_sd, inode, &newattrs);
+ if (rc)
+ goto out_unlock;
+
+ list_for_each_entry(sb, &sysfs_fs_type.fs_supers, s_instances) {
+ /* Ignore it when the dentry does not exist on the
+ * target superblock.
+ */
+ struct dentry * victim = sysfs_get_dentry(sb, victim_sd);
+ if (IS_ERR(victim))
+ continue;
- if (rc == 0) {
fsnotify_change(victim, newattrs.ia_valid);
+ dput(victim);
}
+ out_unlock:
mutex_unlock(&inode->i_mutex);
+ sysfs_release_supers();
+ mutex_unlock(&sysfs_rename_mutex);
out:
- dput(victim);
+ iput(inode);
sysfs_put(victim_sd);
return rc;
}
Patches currently in gregkh-2.6 which might be from ebiederm@xmission.com are
driver-core/kobject-fix-kobject_rename-and-config_sysfs.patch
driver-core/kobject-cleanup-kobject_rename-and-config_sysfs.patch
driver-core/sysfs-implement-__sysfs_get_dentry.patch
driver-core/sysfs-introduce-sysfs_sd_setattr-and-fix-sysfs_chmod.patch
driver-core/sysfs-sysfs_get_dentry-add-a-sb-parameter.patch
driver-core/sysfs-rename-support-multiple-superblocks.patch
driver-core/sysfs-support-for-preventing-unmounts.patch
driver-core/sysfs-sysfs_chmod_file-handle-multiple-superblocks.patch
next prev parent reply other threads:[~2008-08-20 2:22 UTC|newest]
Thread overview: 80+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20080618170729.808539948@theryb.frec.bull.fr>
[not found] ` <20080618170731.002784342@theryb.frec.bull.fr>
[not found] ` <485F04E1.70204@gmail.com>
[not found] ` <m1y74svtff.fsf@frodo.ebiederm.org>
[not found] ` <486706C9.9040303@gmail.com>
[not found] ` <m18wwmsqdv.fsf@frodo.ebiederm.org>
[not found] ` <4869D314.5030403@gmail.com>
[not found] ` <m1ej6enep7.fsf@frodo.ebiederm.org>
[not found] ` <486A0751.9080602@gmail.com>
[not found] ` <m1wsk5hjm0.fsf@frodo.ebiederm.org>
[not found] ` <486AF4FA.8020805@gmail.com>
[not found] ` <m1ej6d9c2r.fsf@frodo.ebiederm.org>
[not found] ` <486B060C.7030607@gmail.com>
[not found] ` <m14p78s02q.fsf@frodo.ebiederm.org>
[not found] ` <486C4515.1070007@gmail.com>
[not found] ` <m1hcb7o8lv.fsf@frodo.ebiederm.org>
[not found] ` <486CB051.5000507@fr.ibm.com>
[not found] ` <m14p77m9uy.fsf@frodo.ebiederm.org>
[not found] ` <486CF71F.5090405@gmail.com>
2008-07-04 0:48 ` [PATCH 00/15] sysfs support for namespaces Eric W. Biederman
2008-07-04 1:05 ` [PATCH 01/15] kobject: Cleanup kobject_rename and !CONFIG_SYSFS Eric W. Biederman
2008-07-04 1:07 ` [PATCH 02/15] sysfs: Support for preventing unmounts Eric W. Biederman
2008-07-04 1:08 ` [PATCH 03/15] sysfs: sysfs_get_dentry add a sb parameter Eric W. Biederman
2008-07-04 1:09 ` [PATCH 04/15] sysfs: Implement __sysfs_get_dentry Eric W. Biederman
2008-07-04 1:10 ` [PATCH 05/15] sysfs: Rename Support multiple superblocks Eric W. Biederman
2008-07-04 1:11 ` [PATCH 06/15] Introduce sysfs_sd_setattr and fix sysfs_chmod Eric W. Biederman
2008-07-04 1:13 ` [PATCH 07/15] sysfs: sysfs_chmod_file handle multiple superblocks Eric W. Biederman
2008-07-04 1:14 ` [PATCH 08/15] sysfs: Make sysfs_mount static once again Eric W. Biederman
2008-07-04 1:16 ` [PATCH 09/15] sysfs: Implement sysfs tagged directory support Eric W. Biederman
2008-07-04 1:17 ` [PATCH 10/15] sysfs: Merge sysfs_rename_dir and sysfs_move_dir Eric W. Biederman
2008-07-04 1:18 ` [PATCH 11/15] sysfs: Implement sysfs_delete_link and sysfs_rename_link Eric W. Biederman
2008-07-04 1:20 ` [PATCH 12/15] driver core: Implement tagged directory support for device classes Eric W. Biederman
2008-07-04 1:21 ` [PATCH 13/15] Revert "netns: Fix device renaming for sysfs" Eric W. Biederman
2008-07-04 1:22 ` [PATCH 14/15] netns: Enable tagging for net_class directories in sysfs Eric W. Biederman
2008-07-04 1:23 ` [PATCH 15/15] sysfs: user namespaces: fix bug with clone(CLONE_NEWUSER) with fairsched Eric W. Biederman
2008-07-04 7:50 ` [PATCH 12/15] driver core: Implement tagged directory support for device classes Tejun Heo
2008-07-04 13:31 ` Eric W. Biederman
2008-07-04 13:57 ` Tejun Heo
2008-07-04 16:12 ` Greg KH
2008-07-04 21:49 ` Eric W. Biederman
2008-07-14 1:54 ` Eric W. Biederman
2008-07-16 3:25 ` Tejun Heo
2008-07-16 5:41 ` Eric W. Biederman
2008-07-16 5:50 ` Tejun Heo
2008-07-16 6:32 ` Eric W. Biederman
2008-07-16 6:48 ` Tejun Heo
2008-07-16 7:02 ` Tejun Heo
2008-07-16 19:07 ` Eric W. Biederman
2008-07-16 21:09 ` Eric W. Biederman
2008-07-17 23:08 ` Greg KH
2008-07-18 12:41 ` Tejun Heo
2008-07-18 18:49 ` Greg KH
2008-07-18 20:19 ` Eric W. Biederman
2008-07-19 1:07 ` Tejun Heo
2008-08-03 6:59 ` Eric W. Biederman
2008-07-04 22:00 ` Eric W. Biederman
2008-08-20 2:17 ` [PATCH 09/15] sysfs: Implement sysfs tagged directory support Greg KH
2008-08-20 6:58 ` Eric W. Biederman
2008-08-21 6:31 ` [PATCH 0/8] sysfs namespace support Eric W. Biederman
2008-08-21 6:33 ` [PATCH 1/8] sysfs: Implement sysfs tagged directory support Eric W. Biederman
2008-08-21 6:34 ` [PATCH 2/8] sysfs: Merge sysfs_rename_dir and sysfs_move_dir Eric W. Biederman
2008-08-21 6:35 ` [PATCH 3/8] sysfs: Implement sysfs_delete_link and sysfs_rename_link Eric W. Biederman
2008-08-21 6:36 ` [PATCH 5/8] sysfs: Remove sysfs_create_link_nowarn Eric W. Biederman
2008-08-21 6:38 ` [PATCH 6/8] Revert "netns: Fix device renaming for sysfs" Eric W. Biederman
2008-08-21 6:39 ` [PATCH 7/8] netns: Enable tagging for net_class directories in sysfs Eric W. Biederman
2008-08-21 6:40 ` [PATCH 8/8] sysfs: user namespaces: fix bug with clone(CLONE_NEWUSER) with fairsched Eric W. Biederman
2008-08-21 6:47 ` [PATCH 7/8] netns: Enable tagging for net_class directories in sysfs David Miller
2008-08-21 6:47 ` [PATCH 6/8] Revert "netns: Fix device renaming for sysfs" David Miller
2008-08-21 6:37 ` [PATCH 4/8] driver core: Implement tagged directory support for device classes Eric W. Biederman
2008-08-27 15:18 ` [PATCH 1/8] sysfs: Implement sysfs tagged directory support Benjamin Thery
2008-09-02 13:54 ` Mark Ryden
2008-09-02 14:03 ` Benjamin Thery
2008-09-02 17:01 ` Greg KH
2008-09-04 5:33 ` David Shwatrz
2008-09-04 6:44 ` Benjamin Thery
2008-09-08 18:39 ` Mark Ryden
2008-10-07 16:39 ` Mark Ryden
2008-10-07 16:48 ` Greg KH
2008-10-07 20:31 ` Eric W. Biederman
2008-10-07 21:09 ` Greg KH
2008-10-07 22:27 ` Eric W. Biederman
2008-10-08 13:00 ` Christoph Hellwig
2008-10-14 3:20 ` Eric W. Biederman
2008-10-07 16:52 ` Daniel Lezcano
2008-08-21 6:37 ` [PATCH 0/8] sysfs namespace support David Miller
2008-07-04 6:44 ` [PATCH 08/15] sysfs: Make sysfs_mount static once again Tejun Heo
2008-07-04 6:44 ` [PATCH 07/15] sysfs: sysfs_chmod_file handle multiple superblocks Tejun Heo
2008-08-20 2:16 ` gregkh [this message]
2008-07-04 6:40 ` [PATCH 06/15] Introduce sysfs_sd_setattr and fix sysfs_chmod Tejun Heo
2008-08-20 2:16 ` patch sysfs-introduce-sysfs_sd_setattr-and-fix-sysfs_chmod.patch added to gregkh-2.6 tree gregkh
2008-08-20 2:16 ` patch sysfs-rename-support-multiple-superblocks.patch " gregkh
2008-08-20 2:16 ` patch sysfs-implement-__sysfs_get_dentry.patch " gregkh
2008-08-20 2:16 ` patch sysfs-sysfs_get_dentry-add-a-sb-parameter.patch " gregkh
2008-07-04 6:33 ` [PATCH 01/15] kobject: Cleanup kobject_rename and !CONFIG_SYSFS Tejun Heo
2008-08-20 1:48 ` patch kobject-cleanup-kobject_rename-and-config_sysfs.patch added to gregkh-2.6 tree gregkh
2008-07-04 1:27 ` [PATCH 00/15] sysfs support for namespaces Eric W. Biederman
2008-07-06 4:42 ` Eric W. Biederman
2008-07-07 11:41 ` Cornelia Huck
2008-07-07 12:22 ` Eric W. Biederman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=12191985952666@kroah.org \
--to=gregkh@suse.de \
--cc=akpm@linux-foundation.org \
--cc=benjamin.thery@bull.net \
--cc=containers@lists.osdl.org \
--cc=dlezcano@fr.ibm.com \
--cc=ebiederm@xmission.com \
--cc=htejun@gmail.com \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).