Re: race between __sync_single_inode() and iput()/bdev_clear_inode()

2005-03-20 Thread OGAWA Hirofumi
OGAWA Hirofumi <[EMAIL PROTECTED]> writes: Grr.. that patch was calling iput() under inode_lock. Fixed patch is below. -- OGAWA Hirofumi <[EMAIL PROTECTED]> Signed-off-by: OGAWA Hirofumi <[EMAIL PROTECTED]> --- fs/block_dev.c| 27 ++- fs/fs-writeback.c | 34 +++

Re: race between __sync_single_inode() and iput()/bdev_clear_inode()

2005-03-20 Thread OGAWA Hirofumi
Andrew Morton <[EMAIL PROTECTED]> writes: > The __sync_single_inode() caller takes a ref on the inode to prevent things > like this from happening. Yes. But, in this case, that inode->i_mapping is pointing the bdev's ->i_mapping by open("/dev/hda2"). open("/dev/hda2") -> blkdev_open() -> bd_a

Re: race between __sync_single_inode() and iput()/bdev_clear_inode()

2005-03-19 Thread Andrew Morton
OGAWA Hirofumi <[EMAIL PROTECTED]> wrote: > > ... > I got the above Oops while doing fs stress test. > > The cause of this was race condition between __sync_single_inode() and > iput()/bdev_clear_inode(). > > This race seems following condition. > > cpu0 (fs's inode) cp

race between __sync_single_inode() and iput()/bdev_clear_inode()

2005-03-19 Thread OGAWA Hirofumi
Hi, EIP is at filemap_fdatawait+0xe/0x80 eax: e7461ad8 ebx: ecx: 0001 edx: esi: e5334c40 edi: 6b6b6b6b ebp: de239e88 esp: de239e70 ds: 007b es: 007b ss: 0068 Process fsstress (pid: 31048, threadinfo=de239000 task=e60cd020) Stack: e7d34358 de239e88 c01834f7 000