Re: [PATCH 2.6.6-mm2] vfs iput in inode critical region
Date: Sat May 15 2004 - 01:51:52 EST
On Sat, 2004-05-15 at 08:33, viro@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
> On Thu, May 13, 2004 at 05:02:19PM +0200, FabF wrote:
> > On Sat, 2004-05-15 at 00:47, viro@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
> > wrote:
> > > On Thu, May 13, 2004 at 09:26:36PM +0200, FabF wrote:
> > > > Hi,
> > > >
> > > > AFAICS, block_dev.c : do_open calls bdput after an unlock_kernel.bdput
> > > > calls iput and iput plays with some parameters and locks in iput final
> > > > case only.Here's a patch to have a spinlock around the whole iput.
> > >
> > > Huh? Of course iput() is called without BKL (and in a lot more places than
> > > just that, actually), but why does it imply that we suddenly need to hold
> > > inode_lock over the entire function?
> > >
> > What can avoid inode->i_state to change during fs put_inode is done plus
> > super_operations get assigned something unprotected as well.
> 1) Nothing whatsoever; why does ->put_inode() need protection for ->i_state
> of all things?
Theorical question of atomicity I guess like stat.c set_bytes asking for
"sufficient locking" should use atomic_t values or critical region and
don't ask sub-layer to process the right locking.Btw set_bytes is used
once (in reiser AFAICS).
> 2) ->i_sb never changes through the lifetime of inode; sb->s_op should never
> change too.
Yep, it should'nt ...
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/