Linux Container Development
 help / color / mirror / Atom feed
From: ebiederm@xmission.com (Eric W. Biederman)
To: Tejun Heo <htejun@gmail.com>
Cc: Greg KH <greg@kroah.com>,
	linux-kernel@vger.kernel.org, satyam@infradead.org,
	cornelia.huck@de.ibm.com, stern@rowland.harvard.edu,
	Linux Containers <containers@lists.osdl.org>,
	gregkh@suse.de
Subject: Re: [PATCH 20/25] sysfs: Rename Support multiple superblocks
Date: Wed, 08 Aug 2007 10:55:10 -0600	[thread overview]
Message-ID: <m18x8mc6fl.fsf@ebiederm.dsl.xmission.com> (raw)
In-Reply-To: <46B9F25B.6020804@gmail.com> (Tejun Heo's message of "Thu, 09 Aug 2007 01:42:03 +0900")

Tejun Heo <htejun@gmail.com> writes:

> Eric W. Biederman wrote:
>>> 	/* Find the first parent which has valid dentry.
>>> 	 */
>>> 	dentry = NULL;
>>> 	cur = sd;
>>> 	while (!(dentry = __sysfs_get_dentry(sb, cur))) {
>>> 		if (cur->s_flags & SYSFS_FLAG_REMOVED) {
>>> 			dentry = ERR_PTR(-ENOENT);
>>> 			break;
>>> 		}
>>> 		cur = cur->s_parent;
>>> 	}
>> 
>> Here we depend on the fact that sysfs_root is pointed to
>> by sb->s_root so we know it will always have a dentry.
>
> Hmmm... dentry could be ERR_PTR(-ENOENT) here if the REMOVED flag test
> succeeded, right?

Ugh right.  Now that I don't have the locking it probably makes
sense to have that path just return or branch to the exit.

>
>>> 	/* from the found dentry, look up depth times */
>>> 	while (dentry->d_fsdata != sd) {
>
> And then dereferenced.  The REMOVED test should never succeed there, so
> we're probably in the clear but still the code looks a bit scary.

Agreed.  That is a bug.  Either the removed test needs to
be removed because it can't happen or that case needs to be handled.

Thanks for spotting this one.

Mental blind spots are the worst.

Eric

  reply	other threads:[~2007-08-08 16:55 UTC|newest]

Thread overview: 79+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <11860582832964-git-send-email-htejun@gmail.com>
     [not found] ` <11860582832964-git-send-email-htejun-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2007-08-07 21:06   ` [PATCH 0/25] Sysfs cleanups & tagged directory support Eric W. Biederman
     [not found]     ` <m1643rkqb6.fsf-T1Yj925okcoyDheHMi7gv2pdwda3JcWeAL8bYrjMMd8@public.gmane.org>
2007-08-07 21:08       ` [PATCH 01/25] sysfs: Move all of inode initialization into sysfs_init_inode Eric W. Biederman
     [not found]         ` <m11wefkq88.fsf_-_-T1Yj925okcoyDheHMi7gv2pdwda3JcWeAL8bYrjMMd8@public.gmane.org>
2007-08-07 21:08           ` [PATCH 02/25] sysfs: Remove sysfs_instantiate Eric W. Biederman
     [not found]             ` <m1wsw7jbml.fsf_-_-T1Yj925okcoyDheHMi7gv2pdwda3JcWeAL8bYrjMMd8@public.gmane.org>
2007-08-07 21:10               ` [PATCH 03/25] sysfs: Use kill_anon_super Eric W. Biederman
     [not found]                 ` <m1sl6vjbjw.fsf_-_-T1Yj925okcoyDheHMi7gv2pdwda3JcWeAL8bYrjMMd8@public.gmane.org>
2007-08-07 21:11                   ` [PATCH 04/25] sysfs: Make sysfs_mount static Eric W. Biederman
     [not found]                     ` <m1odhjjbij.fsf_-_-T1Yj925okcoyDheHMi7gv2pdwda3JcWeAL8bYrjMMd8@public.gmane.org>
2007-08-07 21:12                       ` [PATCH 05/25] sysfs: In sysfs_lookup don't open code sysfs_find_dirent Eric W. Biederman
     [not found]                         ` <m1k5s7jbh9.fsf_-_-T1Yj925okcoyDheHMi7gv2pdwda3JcWeAL8bYrjMMd8@public.gmane.org>
2007-08-07 21:13                           ` [PATCH 06/25] sysfs: Simplify readdir Eric W. Biederman
     [not found]                             ` <m1fy2vjbf9.fsf_-_-T1Yj925okcoyDheHMi7gv2pdwda3JcWeAL8bYrjMMd8@public.gmane.org>
2007-08-07 21:14                               ` [PATCH 07/25] sysfs: Rewrite sysfs_drop_dentry Eric W. Biederman
     [not found]                                 ` <m1bqdjjbcf.fsf_-_-T1Yj925okcoyDheHMi7gv2pdwda3JcWeAL8bYrjMMd8@public.gmane.org>
2007-08-07 21:16                                   ` [PATCH 08/25] sysfs: Implement __sysfs_get_dentry Eric W. Biederman
     [not found]                                     ` <m17io7jba4.fsf_-_-T1Yj925okcoyDheHMi7gv2pdwda3JcWeAL8bYrjMMd8@public.gmane.org>
2007-08-07 21:17                                       ` [PATCH 09/25] sysfs: Move sysfs_get_dentry below __sysfs_get_dentry Eric W. Biederman
     [not found]                                         ` <m13ayvjb82.fsf_-_-T1Yj925okcoyDheHMi7gv2pdwda3JcWeAL8bYrjMMd8@public.gmane.org>
2007-08-07 21:18                                           ` [PATCH 10/25] sysfs: Rewrite sysfs_get_dentry in terms of __sysfs_get_dentry Eric W. Biederman
     [not found]                                             ` <m1y7gnhwm4.fsf_-_-T1Yj925okcoyDheHMi7gv2pdwda3JcWeAL8bYrjMMd8@public.gmane.org>
2007-08-07 21:19                                               ` [PATCH 11/25] sysfs: Remove s_dentry Eric W. Biederman
     [not found]                                                 ` <m1tzrbhwkc.fsf_-_-T1Yj925okcoyDheHMi7gv2pdwda3JcWeAL8bYrjMMd8@public.gmane.org>
2007-08-07 21:21                                                   ` [PATCH 12/25] sysfs: Introduce sysfs_rename_mutex Eric W. Biederman
     [not found]                                                     ` <m1ps1zhwhp.fsf_-_-T1Yj925okcoyDheHMi7gv2pdwda3JcWeAL8bYrjMMd8@public.gmane.org>
2007-08-07 21:22                                                       ` [PATCH 13/25] sysfs: Simply sysfs_get_dentry Eric W. Biederman
     [not found]                                                         ` <m1lkcnhwfu.fsf_-_-T1Yj925okcoyDheHMi7gv2pdwda3JcWeAL8bYrjMMd8@public.gmane.org>
2007-08-07 21:23                                                           ` [PATCH 14/25] sysfs: Don't use lookup_one_len_kern Eric W. Biederman
     [not found]                                                             ` <m1hcnbhwcy.fsf_-_-T1Yj925okcoyDheHMi7gv2pdwda3JcWeAL8bYrjMMd8@public.gmane.org>
2007-08-07 21:25                                                               ` [PATCH 15/25] vfs: Remove lookup_one_len_kern Eric W. Biederman
     [not found]                                                                 ` <m1d4xzhwb2.fsf_-_-T1Yj925okcoyDheHMi7gv2pdwda3JcWeAL8bYrjMMd8@public.gmane.org>
2007-08-07 21:26                                                                   ` [PATCH 16/25] sysfs: Support for preventing unmounts Eric W. Biederman
     [not found]                                                                     ` <m18x8nhw8r.fsf_-_-T1Yj925okcoyDheHMi7gv2pdwda3JcWeAL8bYrjMMd8@public.gmane.org>
2007-08-07 21:27                                                                       ` [PATCH 17/25] sysfs: Rewrite rename in terms of sysfs dirents Eric W. Biederman
     [not found]                                                                         ` <m14pjbhw6y.fsf_-_-T1Yj925okcoyDheHMi7gv2pdwda3JcWeAL8bYrjMMd8@public.gmane.org>
2007-08-07 21:28                                                                           ` [PATCH 18/25] sysfs: Rewrite sysfs_move_dir " Eric W. Biederman
     [not found]                                                                             ` <m1zm13ghlh.fsf_-_-T1Yj925okcoyDheHMi7gv2pdwda3JcWeAL8bYrjMMd8@public.gmane.org>
2007-08-07 21:29                                                                               ` [PATCH 19/25] sysfs: sysfs_get_dentry add a sb parameter Eric W. Biederman
     [not found]                                                                                 ` <m1vebrghjg.fsf_-_-T1Yj925okcoyDheHMi7gv2pdwda3JcWeAL8bYrjMMd8@public.gmane.org>
2007-08-07 21:31                                                                                   ` [PATCH 20/25] sysfs: Rename Support multiple superblocks Eric W. Biederman
     [not found]                                                                                     ` <m1r6mfghg9.fsf_-_-T1Yj925okcoyDheHMi7gv2pdwda3JcWeAL8bYrjMMd8@public.gmane.org>
2007-08-07 21:32                                                                                       ` [PATCH 21/25] sysfs: sysfs_chmod_file handle " Eric W. Biederman
     [not found]                                                                                         ` <m1myx3ghdt.fsf_-_-T1Yj925okcoyDheHMi7gv2pdwda3JcWeAL8bYrjMMd8@public.gmane.org>
2007-08-07 21:34                                                                                           ` [PATCH 22/25] sysfs: sysfs_uptdate_file " Eric W. Biederman
     [not found]                                                                                             ` <m1ir7rghbg.fsf_-_-T1Yj925okcoyDheHMi7gv2pdwda3JcWeAL8bYrjMMd8@public.gmane.org>
2007-08-07 21:35                                                                                               ` [PATCH 23/25] sysfs: Implement sysfs tagged directory support Eric W. Biederman
     [not found]                                                                                                 ` <m1ejifgh98.fsf_-_-T1Yj925okcoyDheHMi7gv2pdwda3JcWeAL8bYrjMMd8@public.gmane.org>
2007-08-07 21:36                                                                                                   ` [PATCH 24/25] sysfs: Implement sysfs_delete_link and sysfs_rename_link Eric W. Biederman
     [not found]                                                                                                     ` <m1abt3gh86.fsf_-_-T1Yj925okcoyDheHMi7gv2pdwda3JcWeAL8bYrjMMd8@public.gmane.org>
2007-08-07 21:36                                                                                                       ` [PATCH 25/25] driver core: Implement tagged directory support for device classes Eric W. Biederman
2007-08-08 16:31                                                                                                 ` alternative approached at tagged nodes Tejun Heo
2007-08-08  9:39                                                                                             ` [PATCH 22/25] sysfs: sysfs_uptdate_file handle multiple superblocks Tejun Heo
2007-08-08  9:38                                                                                         ` [PATCH 21/25] sysfs: sysfs_chmod_file " Tejun Heo
2007-08-08  9:35                                                                                     ` [PATCH 20/25] sysfs: Rename Support " Tejun Heo
2007-08-08 15:45                                                                                       ` Eric W. Biederman
2007-08-08 15:50                                                                                         ` Tejun Heo
     [not found]                                                                                           ` <46B9E660.6030702-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2007-08-08 16:35                                                                                             ` Eric W. Biederman
2007-08-08 16:42                                                                                               ` Tejun Heo
2007-08-08 16:55                                                                                                 ` Eric W. Biederman [this message]
2007-08-08  8:57                                                                                 ` [PATCH 19/25] sysfs: sysfs_get_dentry add a sb parameter Tejun Heo
2007-08-08 15:34                                                                                   ` Eric W. Biederman
2007-08-08  8:53                                                                             ` [PATCH 18/25] sysfs: Rewrite sysfs_move_dir in terms of sysfs dirents Tejun Heo
2007-08-08  8:51                                                                         ` [PATCH 17/25] sysfs: Rewrite rename " Tejun Heo
2007-08-08 15:32                                                                           ` Eric W. Biederman
2007-08-08  8:39                                                                 ` [PATCH 15/25] vfs: Remove lookup_one_len_kern Tejun Heo
2007-08-08  8:38                                                             ` [PATCH 14/25] sysfs: Don't use lookup_one_len_kern Tejun Heo
2007-08-08 15:26                                                               ` Eric W. Biederman
2007-08-08 15:35                                                                 ` Tejun Heo
2007-08-08  8:24                                                         ` [PATCH 13/25] sysfs: Simply sysfs_get_dentry Tejun Heo
2007-08-08  8:19                                                     ` [PATCH 12/25] sysfs: Introduce sysfs_rename_mutex Tejun Heo
2007-08-08  8:23                                                       ` Tejun Heo
2007-08-08  8:28                                                       ` Eric W. Biederman
2007-08-08  7:46                                                 ` [PATCH 11/25] sysfs: Remove s_dentry Tejun Heo
2007-08-08  7:45                                             ` [PATCH 10/25] sysfs: Rewrite sysfs_get_dentry in terms of __sysfs_get_dentry Tejun Heo
2007-08-08  7:45                                         ` [PATCH 09/25] sysfs: Move sysfs_get_dentry below __sysfs_get_dentry Tejun Heo
2007-08-08  7:45                                     ` [PATCH 08/25] sysfs: Implement __sysfs_get_dentry Tejun Heo
2007-08-08  7:35                                   ` [PATCH 07/25] sysfs: Rewrite sysfs_drop_dentry Tejun Heo
2007-08-08  7:12                             ` [PATCH 06/25] sysfs: Simplify readdir Tejun Heo
2007-08-08  6:51                         ` [PATCH 05/25] sysfs: In sysfs_lookup don't open code sysfs_find_dirent Tejun Heo
2007-08-08  6:51                     ` [PATCH 04/25] sysfs: Make sysfs_mount static Tejun Heo
2007-08-08  6:50                 ` [PATCH 03/25] sysfs: Use kill_anon_super Tejun Heo
2007-08-08  6:37             ` [PATCH 02/25] sysfs: Remove sysfs_instantiate Tejun Heo
2007-08-08  6:37         ` [PATCH 01/25] sysfs: Move all of inode initialization into sysfs_init_inode Tejun Heo
2007-08-08  7:38       ` [PATCH 0/25] Sysfs cleanups & tagged directory support Cornelia Huck
2007-08-08  7:47         ` Eric W. Biederman
2007-08-08  7:53           ` Tejun Heo
2007-08-08  7:54           ` Cornelia Huck
2007-08-08  7:57             ` Eric W. Biederman
2007-08-08  8:37               ` Cornelia Huck
2007-08-08  8:54                 ` Tejun Heo
2007-08-08  9:16                   ` Cornelia Huck
2007-08-08 14:16                 ` Cornelia Huck
2007-08-08 14:35                   ` Tejun Heo
2007-08-08 14:50                     ` Cornelia Huck
2007-08-08 14:55                       ` Tejun Heo
2007-08-08 15:08                         ` Eric W. Biederman
2007-08-08 15:13                           ` Tejun Heo
2007-08-08 15:16                             ` Tejun Heo
     [not found]                               ` <46B9DE5E.7050406-l3A5Bk7waGM@public.gmane.org>
2007-08-08 15:53                                 ` Eric W. Biederman
2007-08-08 16:03                                   ` Tejun Heo
     [not found]                                     ` <46B9E948.8080605-l3A5Bk7waGM@public.gmane.org>
2007-08-08 16:37                                       ` Eric W. Biederman
2007-08-08 15:15                         ` Cornelia Huck
2007-08-08 16:35                       ` Cornelia Huck

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=m18x8mc6fl.fsf@ebiederm.dsl.xmission.com \
    --to=ebiederm@xmission.com \
    --cc=containers@lists.osdl.org \
    --cc=cornelia.huck@de.ibm.com \
    --cc=greg@kroah.com \
    --cc=gregkh@suse.de \
    --cc=htejun@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=satyam@infradead.org \
    --cc=stern@rowland.harvard.edu \
    /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