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

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

Btrfs: fix casting error in scrub reada code



The reada code from scrub was casting down a u64 to
an unsigned long so it could insert it into a radix tree.

What it really wanted to do was cast down the result of a shift, instead
of casting down the u64.  The bug resulted in trying to insert our
reada struct into the wrong place, which caused soft lockups and other
problems.

Signed-off-by: default avatarChris Mason <chris.mason@oracle.com>
parent d3b01064
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -305,7 +305,7 @@ again:

	spin_lock(&fs_info->reada_lock);
	ret = radix_tree_insert(&dev->reada_zones,
				(unsigned long)zone->end >> PAGE_CACHE_SHIFT,
				(unsigned long)(zone->end >> PAGE_CACHE_SHIFT),
				zone);
	spin_unlock(&fs_info->reada_lock);