All of lore.kernel.org
 help / color / mirror / Atom feed
From: Valerie Aurora <vaurora@redhat.com>
To: Jeff Layton <jlayton@redhat.com>
Cc: Alexander Viro <viro@zeniv.linux.org.uk>,
	Christoph Hellwig <hch@infradead.org>,
	Miklos Szeredi <miklos@szeredi.hu>, Jan Blunck <jblunck@suse.de>,
	Jamie Lokier <jamie@shareable.org>,
	David Woodhouse <dwmw2@infradead.org>,
	linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org
Subject: Re: [PATCH] d_ino considered harmful
Date: Wed, 16 Jun 2010 15:58:35 -0400	[thread overview]
Message-ID: <20100616195834.GD24382@shell> (raw)
In-Reply-To: <20100616151556.23cc9113@tlielax.poochiereds.net>

On Wed, Jun 16, 2010 at 03:15:56PM -0400, Jeff Layton wrote:
> On Wed, 16 Jun 2010 14:59:13 -0400
> Valerie Aurora <vaurora@redhat.com> wrote:
> 
> > Who needs d_ino anyway?  I am running a kernel with this patch -
> > Gnome, a browser, IRC, kernel compile, etc. and everything works.
> > 
> > -VAL
> > 
> > commit 184f3919d0071f3bfa40010aa6919ea89999d79b
> > Author: Valerie Aurora <vaurora@redhat.com>
> > Date:   Wed Jun 16 11:05:06 2010 -0700
> > 
> >     VFS: Always return 0 for d_ino
> >     
> >     Use of d_ino without the corresponding st_dev is always buggy in the
> >     presence of submounts, bind mounts, and union mounts.  E.g., the d_ino
> >     of a mountpoint will be the inode number of the directory under the
> >     mountpoint, not the mounted directory.  Correct code must call stat(),
> >     which returns the correct device ID and inode in st_dev and st_ino.
> >     Since no one should be using d_ino anyway, always return 0 to detect
> >     bugs.
> > 
> > diff --git a/fs/readdir.c b/fs/readdir.c
> > index dd3eae1..38ea772 100644
> > --- a/fs/readdir.c
> > +++ b/fs/readdir.c
> > @@ -91,7 +91,9 @@ static int fillonedir(void * __buf, const char * name, int namlen, loff_t offset
> >  
> >  	if (buf->result)
> >  		return -EINVAL;
> > -	d_ino = ino;
> > +	/* Use of d_ino without st_dev is always buggy. */
> > +	d_ino = 0;
> > +
> >  	if (sizeof(d_ino) < sizeof(ino) && d_ino != ino) {
> >  		buf->result = -EOVERFLOW;
> >  		return -EOVERFLOW;
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> > 
> 
> That may run afoul of the following check (where d_ino is compared to
> ino). You can probably just remove that check though since you can be
> reasonably sure that 0 will never overflow the field.

You're right, I included that in the next version of the patch.

Thanks,

-VAL

  reply	other threads:[~2010-06-16 19:58 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-06-16 18:59 [PATCH] d_ino considered harmful Valerie Aurora
2010-06-16 18:59 ` Valerie Aurora
2010-06-16 19:10 ` Arnd Bergmann
2010-06-16 19:58   ` Valerie Aurora
2010-06-16 19:15 ` Jeff Layton
2010-06-16 19:58   ` Valerie Aurora [this message]
2010-06-16 19:54 ` [PATCH v2] " Valerie Aurora
2010-06-16 19:54   ` Valerie Aurora
2010-06-16 20:44   ` David Dillow
2010-06-17 18:04     ` J. R. Okajima
2010-06-17 18:17       ` David Dillow
2010-06-17 18:58       ` Valerie Aurora
2010-06-18  1:41       ` Andreas Dilger
2010-06-18  2:57         ` J. R. Okajima
2010-06-17 17:54   ` Jamie Lokier
2010-06-17 19:10     ` Valerie Aurora
2010-06-17 23:39   ` Andreas Dilger
2010-06-18 19:41     ` Valerie Aurora

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=20100616195834.GD24382@shell \
    --to=vaurora@redhat.com \
    --cc=dwmw2@infradead.org \
    --cc=hch@infradead.org \
    --cc=jamie@shareable.org \
    --cc=jblunck@suse.de \
    --cc=jlayton@redhat.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=miklos@szeredi.hu \
    --cc=viro@zeniv.linux.org.uk \
    /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.