All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Serge E. Hallyn" <serue@us.ibm.com>
To: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Greg Kroah-Hartman <gregkh@suse.de>,
	Kay Sievers <kay.sievers@vrfy.org>, Greg KH <greg@kroah.com>,
	linux-kernel@vger.kernel.org, Tejun Heo <tj@kernel.org>,
	Cornelia Huck <cornelia.huck@de.ibm.com>,
	linux-fsdevel@vger.kernel.org,
	Eric Dumazet <eric.dumazet@gmail.com>,
	Benjamin LaHaise <bcrl@lhnet.ca>,
	"Eric W. Biederman" <ebiederm@aristanetworks.com>
Subject: Re: [PATCH 12/13] sysfs: Propagate renames to the vfs on demand
Date: Wed, 4 Nov 2009 15:49:38 -0600	[thread overview]
Message-ID: <20091104214938.GA21033@us.ibm.com> (raw)
In-Reply-To: <1257249429-12384-12-git-send-email-ebiederm@xmission.com>

Quoting Eric W. Biederman (ebiederm@xmission.com):
> From: Eric W. Biederman <ebiederm@xmission.com>
> 
> By teaching sysfs_revalidate to hide a dentry for
> a sysfs_dirent if the sysfs_dirent has been renamed,
> and by teaching sysfs_lookup to return the original
> dentry if the sysfs dirent has been renamed.  I can
> show the results of renames correctly without having to
> update the dcache during the directory rename.
> 
> This massively simplifies the rename logic allowing a lot
> of weird sysfs special cases to be removed along with
> a lot of now unnecesary helper code.
> 
> Acked-by: Tejun Heo <tj@kernel.org>
> Signed-off-by: Eric W. Biederman <ebiederm@aristanetworks.com>

Patch looks *great*, except:

...

> @@ -315,6 +274,14 @@ static int sysfs_dentry_revalidate(struct dentry *dentry, struct nameidata *nd)
>  	if (sd->s_flags & SYSFS_FLAG_REMOVED)
>  		goto out_bad;
> 
> +	/* The sysfs dirent has been moved? */
> +	if (dentry->d_parent->d_fsdata != sd->s_parent)
> +		goto out_bad;
> +
> +	/* The sysfs dirent has been renamed */
> +	if (strcmp(dentry->d_name.name, sd->s_name) != 0)
> +		goto out_bad;
> +
>  	mutex_unlock(&sysfs_mutex);
>  out_valid:
>  	return 1;
> @@ -322,6 +289,12 @@ out_bad:
>  	/* Remove the dentry from the dcache hashes.
>  	 * If this is a deleted dentry we use d_drop instead of d_delete
>  	 * so sysfs doesn't need to cope with negative dentries.
> +	 *
> +	 * If this is a dentry that has simply been renamed we
> +	 * use d_drop to remove it from the dcache lookup on its
> +	 * old parent.  If this dentry persists later when a lookup
> +	 * is performed at its new name the dentry will be readded
> +	 * to the dcache hashes.
>  	 */
>  	is_dir = (sysfs_type(sd) == SYSFS_DIR);
>  	mutex_unlock(&sysfs_mutex);

After this, if (is_dir) and (have_submounts(dentry)) then you'll
still goto out_valid and return 1.  Is that what you want?

-serge

  reply	other threads:[~2009-11-04 21:49 UTC|newest]

Thread overview: 92+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-11-03 11:53 [PATCH 0/13] sysfs lazification Eric W. Biederman
2009-11-03 11:56 ` [PATCH 01/13] sysfs: Update sysfs_setxattr so it updates secdata under the sysfs_mutex Eric W. Biederman
2009-11-03 13:48   ` Serge E. Hallyn
2009-11-03 21:09     ` Eric W. Biederman
2009-11-03 21:31       ` Serge E. Hallyn
2009-11-03 22:13         ` Eric W. Biederman
2009-11-07  2:27   ` Tejun Heo
2009-11-03 11:56 ` [PATCH 02/13] sysfs: Rename sysfs_d_iput to sysfs_dentry_iput Eric W. Biederman
2009-11-04  4:33   ` Serge E. Hallyn
2009-11-03 11:56 ` [PATCH 03/13] sysfs: Use dentry_ops instead of directly playing with the dcache Eric W. Biederman
2009-11-03 22:27   ` Serge E. Hallyn
2009-11-03 11:57 ` [PATCH 04/13] sysfs: Simplify sysfs_chmod_file semantics Eric W. Biederman
2009-11-04  2:43   ` Serge E. Hallyn
2009-11-04  3:42     ` Eric W. Biederman
2009-11-04  4:55       ` Serge E. Hallyn
2009-11-03 11:57 ` [PATCH 05/13] sysfs: Simplify iattr time assignments Eric W. Biederman
2009-11-04  2:57   ` Serge E. Hallyn
2009-11-03 11:57 ` [PATCH 06/13] sysfs: Fix locking and factor out sysfs_sd_setattr Eric W. Biederman
2009-11-04  3:16   ` Serge E. Hallyn
2009-11-04  3:49     ` Eric W. Biederman
2009-11-04 12:56       ` Eric W. Biederman
2009-11-03 11:57 ` [PATCH 07/13] sysfs: Update s_iattr on link and unlink Eric W. Biederman
2009-11-04  3:54   ` Serge E. Hallyn
2009-11-04  4:11     ` Eric W. Biederman
2009-11-04  4:58       ` Serge E. Hallyn
2009-11-03 11:57 ` [PATCH 08/13] sysfs: Nicely indent sysfs_symlink_inode_operations Eric W. Biederman
2009-11-04  4:33   ` Serge E. Hallyn
2009-11-03 11:57 ` [PATCH 09/13] sysfs: Implement sysfs_getattr & sysfs_permission Eric W. Biederman
2009-11-04  4:20   ` Serge E. Hallyn
2009-11-04  5:50     ` Eric W. Biederman
2009-11-04 14:24       ` Serge E. Hallyn
2009-11-07  2:06   ` Tejun Heo
2009-11-08  6:04     ` Eric W. Biederman
2009-11-03 11:57 ` [PATCH 10/13] sysfs: In sysfs_chmod_file lazily propagate the mode change Eric W. Biederman
2009-11-04  4:23   ` Serge E. Hallyn
2009-11-03 11:57 ` [PATCH 11/13] sysfs: Gut sysfs_addrm_start and sysfs_addrm_finish Eric W. Biederman
2009-11-04  4:32   ` Serge E. Hallyn
2009-11-07  2:08   ` Tejun Heo
2009-11-03 11:57 ` [PATCH 12/13] sysfs: Propagate renames to the vfs on demand Eric W. Biederman
2009-11-04 21:49   ` Serge E. Hallyn [this message]
2009-11-04 21:59     ` Eric W. Biederman
2009-11-07  2:11       ` Tejun Heo
2009-11-07  2:16         ` Eric W. Biederman
2009-11-07  2:20           ` Tejun Heo
2009-11-07  2:34             ` Eric W. Biederman
2009-11-07 11:12           ` Miklos Szeredi
2009-11-07 11:57             ` Eric W. Biederman
2009-11-09 14:14         ` Serge E. Hallyn
2009-11-09 22:34           ` Eric Biederman
2009-11-03 11:57 ` [PATCH 13/13] sysfs: Factor out sysfs_rename from sysfs_rename_dir and sysfs_move_dir Eric W. Biederman
2009-11-04 22:19   ` Serge E. Hallyn
2009-11-04 22:23     ` Eric W. Biederman
2009-11-04 22:37       ` Serge E. Hallyn
2009-11-05  4:51         ` Eric W. Biederman
2009-11-04 12:04 ` [PATCH 14/13] sysfs: sysfs_setattr remove unnecessary permission check Eric W. Biederman
2009-11-04 14:25   ` Serge E. Hallyn
2009-11-07  2:18   ` Tejun Heo
2009-11-04 12:05 ` [PATCH 15/13] sysfs: Protect sysfs_refresh_inode with inode mutex Eric W. Biederman
2009-11-04 14:27   ` Serge E. Hallyn
2009-11-04 20:51     ` Eric W. Biederman
2009-11-07  2:26   ` Tejun Heo
2009-11-08  7:04     ` Eric W. Biederman
2009-11-06 22:48 ` [PATCH 0/13] sysfs lazification Greg KH
2009-11-08  7:06   ` Eric W. Biederman
2009-11-17  9:11   ` Eric W. Biederman
2009-11-17 15:41     ` Greg KH
2009-11-17 15:56       ` Eric W. Biederman
2009-11-08  7:25 ` [PATCH 0/15] sysfs lazification final Eric W. Biederman
2009-11-08  7:26   ` [PATCH 01/15] sysfs: Update sysfs_setxattr so it updates secdata under the sysfs_mutex Eric W. Biederman
2009-11-08  7:27   ` [PATCH 02/15] sysfs: Rename sysfs_d_iput to sysfs_dentry_iput Eric W. Biederman
2009-11-08  7:27   ` [PATCH 03/15] sysfs: Use dentry_ops instead of directly playing with the dcache Eric W. Biederman
2009-11-08  7:27   ` [PATCH 04/15] sysfs: Simplify sysfs_chmod_file semantics Eric W. Biederman
2009-11-08  7:27   ` [PATCH 05/15] sysfs: Simplify iattr time assignments Eric W. Biederman
2009-11-08  7:27   ` [PATCH 06/15] sysfs: Fix locking and factor out sysfs_sd_setattr Eric W. Biederman
2009-11-09 14:26     ` Serge E. Hallyn
2009-11-20 20:13     ` Greg KH
2009-11-20 21:39       ` Eric W. Biederman
2009-11-21  0:07       ` Eric W. Biederman
2009-11-21  5:12         ` Greg KH
2009-11-08  7:27   ` [PATCH 07/15] sysfs: Update s_iattr on link and unlink Eric W. Biederman
2009-11-08  7:27   ` [PATCH 08/15] sysfs: Nicely indent sysfs_symlink_inode_operations Eric W. Biederman
2009-11-08  7:27   ` [PATCH 09/15] sysfs: Implement sysfs_getattr & sysfs_permission Eric W. Biederman
2009-11-08  7:27   ` [PATCH 10/15] sysfs: In sysfs_chmod_file lazily propagate the mode change Eric W. Biederman
2009-11-08  7:27   ` [PATCH 11/15] sysfs: Gut sysfs_addrm_start and sysfs_addrm_finish Eric W. Biederman
2009-11-08  7:27   ` [PATCH 12/15] sysfs: Propagate renames to the vfs on demand Eric W. Biederman
2009-11-08  7:27   ` [PATCH 13/15] sysfs: Factor out sysfs_rename from sysfs_rename_dir and sysfs_move_dir Eric W. Biederman
2009-11-08  7:27   ` [PATCH 14/15] sysfs: sysfs_setattr remove unnecessary permission check Eric W. Biederman
2009-11-08  7:27   ` [PATCH 15/15] sysfs: Protect sysfs_refresh_inode with inode mutex Eric W. Biederman
2009-11-09  3:57   ` [PATCH 0/15] sysfs lazification final Tejun Heo
2009-11-30 21:33   ` Greg KH
2009-11-30 21:53     ` Greg KH
2009-12-01  0:12       ` 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=20091104214938.GA21033@us.ibm.com \
    --to=serue@us.ibm.com \
    --cc=bcrl@lhnet.ca \
    --cc=cornelia.huck@de.ibm.com \
    --cc=ebiederm@aristanetworks.com \
    --cc=ebiederm@xmission.com \
    --cc=eric.dumazet@gmail.com \
    --cc=greg@kroah.com \
    --cc=gregkh@suse.de \
    --cc=kay.sievers@vrfy.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tj@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.