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() ->
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
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.
&
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)
- %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
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
7 matches
Mail list logo