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

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

Btrfs: Take the extent lock before dropping the delalloc bits

parent 5e591a07
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -765,9 +765,13 @@ static int prepare_pages(struct btrfs_root *root, struct file *file,
	if (start_pos < inode->i_size) {
		u64 last_pos;
		last_pos = (index + num_pages) << PAGE_CACHE_SHIFT;
		lock_extent(&BTRFS_I(inode)->io_tree,
			    start_pos, last_pos - 1, GFP_NOFS);
		clear_extent_bits(&BTRFS_I(inode)->io_tree, start_pos,
				  last_pos - 1, EXTENT_DIRTY | EXTENT_DELALLOC,
				  GFP_NOFS);
		unlock_extent(&BTRFS_I(inode)->io_tree,
			      start_pos, last_pos - 1, GFP_NOFS);
	}
	return 0;
}