On Thu, 27 Sep 2007 09:54:47 -0700 (PDT) Davide Libenzi <[EMAIL PROTECTED]> 
wrote:

> On Thu, 27 Sep 2007, Davide Libenzi wrote:
> 
> > On Wed, 26 Sep 2007, Andrew Morton wrote:
> > 
> > > On Thu, 27 Sep 2007 10:30:50 +0800 "Yan Zheng" <[EMAIL PROTECTED]> wrote:
> > > 
> > > > Hello,
> > > > 
> > > > igrab return NULL on error.
> > > > 
> > > > Signed-off-by: Yan Zheng<[EMAIL PROTECTED]>
> > > > ---
> > > > diff -ur linux-2.6.23-rc8/fs/anon_inodes.c linux/fs/anon_inodes.c
> > > > --- linux-2.6.23-rc8/fs/anon_inodes.c   2007-09-27 10:05:07.000000000 
> > > > +0800
> > > > +++ linux/fs/anon_inodes.c      2007-09-27 10:18:26.000000000 +0800
> > > > @@ -87,8 +87,8 @@
> > > >                 return -ENFILE;
> > > > 
> > > >         inode = igrab(anon_inode_inode);
> > > > -       if (IS_ERR(inode)) {
> > > > -               error = PTR_ERR(inode);
> > > > +       if (!inode) {
> > > > +               error = -ENOENT;
> > > >                 goto err_put_filp;
> > > >         }
> > > 
> > > hm, does that code actually need to exist?  igrab() is pretty expensive 
> > > and
> > > that fs is permanently mounted anyway...
> > 
> > yes. The inode gets attached the the file*, and on its way out an iput() 
> > is done.
> 
> Wait. You mean "is it worth checking the igrab() return code at all"?

Well I was more thinking "can we just leave that inode's refcount alone all
the time".  I guess that would be tricky, but I think we can at least use
the much less expensive __iget(), or an open-coded atomic_inc.

inode_lock is a heavily-used singleton.  I remain surprised that it hasn't
bitten us in the ass yet.

-
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to