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 +++
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
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
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
4 matches
Mail list logo