Re: [PATCH 07/18] fs: rework icount to be a locked variable

From: Dave Chinner
Date: Fri Oct 15 2010 - 20:20:51 EST


On Sat, Oct 16, 2010 at 11:15:33AM +1100, Dave Chinner wrote:
> On Wed, Oct 13, 2010 at 07:36:43AM -0400, Christoph Hellwig wrote:
> > > - atomic_inc(&inode->i_count);
> > > + spin_lock(&inode->i_lock);
> > > + inode->i_ref++;
> > > + spin_unlock(&inode->i_lock);
> >
> > Why isn't this using iref?
> >
> > > + spin_lock(&inode->i_lock);
> > > + inode->i_ref++;
> > > + spin_unlock(&inode->i_lock);
> >
> > Same here and in a couple of others.
> >
> > Hmm, I guess because the i_lock later covers other things around.
> > But it still looks a bit weird.
>
> Ok, I've changed them to iref() calls and convert them to open
> coding later on when necessary.

Oh, NAK that - hit send too soon. I forgot - they're are done that
way because they are under the inode_lock, and iref(), at this point
in the series, takes the inode_lock. So while it looks weird, it has
to stay that way otherwise it deadlocks.....

Cheers,

Dave.
--
Dave Chinner
david@xxxxxxxxxxxxx
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/