diff options
author | Omar Sandoval <osandov@fb.com> | 2017-08-24 00:03:42 -0700 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2017-08-31 13:51:12 -0600 |
commit | 6c6b6f28b3335fd85ec833ee0005d9c9dca6c003 (patch) | |
tree | 47c20664f91ebd3591628a8ec52ca06b7dbbef76 /drivers/block | |
parent | 8a0740c4109d646d8697d359962edea47301c652 (diff) | |
download | linux-stable-6c6b6f28b3335fd85ec833ee0005d9c9dca6c003.tar.gz linux-stable-6c6b6f28b3335fd85ec833ee0005d9c9dca6c003.tar.bz2 linux-stable-6c6b6f28b3335fd85ec833ee0005d9c9dca6c003.zip |
loop: set physical block size to PAGE_SIZE
The physical block size is "the lowest possible sector size that the
hardware can operate on without reverting to read-modify-write
operations" (from the comment on blk_queue_physical_block_size()). Since
loop does buffered I/O on the backing file by default, the RMW unit is a
page. This isn't the case for direct I/O mode, but let's keep it simple.
Reviewed-by: Ming Lei <ming.lei@redhat.com>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Signed-off-by: Omar Sandoval <osandov@fb.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'drivers/block')
-rw-r--r-- | drivers/block/loop.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/block/loop.c b/drivers/block/loop.c index efad2d46a018..e3f190016d4f 100644 --- a/drivers/block/loop.c +++ b/drivers/block/loop.c @@ -1764,6 +1764,8 @@ 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); + /* * It doesn't make sense to enable merge because the I/O * submitted to backing file is handled page by page. |