Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a098d8e8 authored by Chris Mason's avatar Chris Mason
Browse files

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: default avatarChris Mason <chris.mason@oracle.com>
parent cfed81a0
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -3010,12 +3010,12 @@ static int lock_extent_buffer_for_io(struct extent_buffer *eb,
			flush_write_bio(epd);
			flush = 1;
		}
		while (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");
			if (!test_bit(EXTENT_BUFFER_WRITEBACK, &eb->bflags))
				break;
			btrfs_tree_unlock(eb);
			return 0;
		}
	}