Skip to content

Commit

Permalink
loop: set physical block size to logical block size
Browse files Browse the repository at this point in the history
Commit 6c6b6f2 ("loop: set physical block size to PAGE_SIZE")
caused mkfs.xfs to barf on ppc64 [1]. Always using PAGE_SIZE as the
physical block size still makes the most sense semantically, but let's
just lie and always set it to the same value as the logical block size
(same goes for io_min). In the future we might want to at least bump up
io_min to PAGE_SIZE but I'm sick of these stupid changes so let's play
it safe.

1: https://marc.info/?l=linux-xfs&m=150459024723753&w=2

Tested-by: Chandan Rajendra <[email protected]>
Signed-off-by: Omar Sandoval <[email protected]>
Signed-off-by: Jens Axboe <[email protected]>
  • Loading branch information
osandov authored and axboe committed Sep 6, 2017
1 parent 9276717 commit bf09375
Showing 1 changed file with 4 additions and 2 deletions.
6 changes: 4 additions & 2 deletions drivers/block/loop.c
Original file line number Diff line number Diff line change
Expand Up @@ -1036,6 +1036,8 @@ static int loop_clr_fd(struct loop_device *lo)
memset(lo->lo_crypt_name, 0, LO_NAME_SIZE);
memset(lo->lo_file_name, 0, LO_NAME_SIZE);
blk_queue_logical_block_size(lo->lo_queue, 512);
blk_queue_physical_block_size(lo->lo_queue, 512);
blk_queue_io_min(lo->lo_queue, 512);
if (bdev) {
bdput(bdev);
invalidate_bdev(bdev);
Expand Down Expand Up @@ -1330,6 +1332,8 @@ static int loop_set_block_size(struct loop_device *lo, unsigned long arg)
blk_mq_freeze_queue(lo->lo_queue);

blk_queue_logical_block_size(lo->lo_queue, arg);
blk_queue_physical_block_size(lo->lo_queue, arg);
blk_queue_io_min(lo->lo_queue, arg);
loop_update_dio(lo);

blk_mq_unfreeze_queue(lo->lo_queue);
Expand Down Expand Up @@ -1777,8 +1781,6 @@ static int loop_add(struct loop_device **l, int i)
}
lo->lo_queue->queuedata = lo;

blk_queue_physical_block_size(lo->lo_queue, PAGE_SIZE);

blk_queue_max_hw_sectors(lo->lo_queue, BLK_DEF_MAX_SECTORS);

/*
Expand Down

0 comments on commit bf09375

Please sign in to comment.