提交 a098d8e8 编写于 作者: C Chris Mason

Btrfs: loop waiting on writeback

lock_extent_buffer_for_io needs to loop around and make sure the
writeback bits are not set.
Signed-off-by: NChris Mason <chris.mason@oracle.com>
上级 cfed81a0
......@@ -3010,12 +3010,12 @@ static int lock_extent_buffer_for_io(struct extent_buffer *eb,
flush_write_bio(epd);
flush = 1;
}
wait_on_extent_buffer_writeback(eb);
btrfs_tree_lock(eb);
if (test_bit(EXTENT_BUFFER_WRITEBACK, &eb->bflags)) {
printk(KERN_ERR "Um, ok?\n");
while (1) {
wait_on_extent_buffer_writeback(eb);
btrfs_tree_lock(eb);
if (!test_bit(EXTENT_BUFFER_WRITEBACK, &eb->bflags))
break;
btrfs_tree_unlock(eb);
return 0;
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册