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() ->

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-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. &

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

2005-03-19 Thread OGAWA Hirofumi
e 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)

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

2005-03-19 Thread OGAWA Hirofumi
- %edi is mapping-host 0xc013e29e filemap_fdatawait+14: mov0x15c(%edi),%edx - Oops here 0xc013e2a4 filemap_fdatawait+20: lea0x0(%esi),%esi I got the above Oops while doing fs stress test. The cause of this was race condition between __sync_single_inode() and iput

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) cpu1 (bdev's