Btrfs: cast bio->bi_sector to a u64 before shifting
On 32 bit machines without CONFIG_LBD, the bi_sector field is only 32 bits. Btrfs needs to cast it before shifting up, or we end up doing IO into the wrong place. Signed-off-by: Chris Mason <chris.mason@oracle.com>
This commit is contained in:
Родитель
30c43e2444
Коммит
a62b940160
|
@ -386,7 +386,7 @@ int btrfs_merge_bio_hook(struct page *page, unsigned long offset,
|
|||
{
|
||||
struct btrfs_root *root = BTRFS_I(page->mapping->host)->root;
|
||||
struct btrfs_mapping_tree *map_tree;
|
||||
u64 logical = bio->bi_sector << 9;
|
||||
u64 logical = (u64)bio->bi_sector << 9;
|
||||
u64 length = 0;
|
||||
u64 map_length;
|
||||
int ret;
|
||||
|
|
|
@ -2187,7 +2187,7 @@ int btrfs_map_bio(struct btrfs_root *root, int rw, struct bio *bio,
|
|||
struct btrfs_mapping_tree *map_tree;
|
||||
struct btrfs_device *dev;
|
||||
struct bio *first_bio = bio;
|
||||
u64 logical = bio->bi_sector << 9;
|
||||
u64 logical = (u64)bio->bi_sector << 9;
|
||||
u64 length = 0;
|
||||
u64 map_length;
|
||||
struct btrfs_multi_bio *multi = NULL;
|
||||
|
|
Загрузка…
Ссылка в новой задаче