Messages in this thread | | | Date | Sat, 15 May 2004 07:33:33 +0100 | From | viro@parcelfa ... | Subject | Re: [PATCH 2.6.6-mm2] vfs iput in inode critical region |
| |
On Thu, May 13, 2004 at 05:02:19PM +0200, FabF wrote: > On Sat, 2004-05-15 at 00:47, viro@parcelfarce.linux.theplanet.co.uk > 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? 2) ->i_sb never changes through the lifetime of inode; sb->s_op should never change too. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |