Message ID | 378ae3760bd37441fd60a5188eae75f39babb6aa.1503558155.git.osandov@fb.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 08/24/2017 09:03 AM, Omar Sandoval wrote: > From: Omar Sandoval <osandov@fb.com> > > 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. > > Signed-off-by: Omar Sandoval <osandov@fb.com> > --- > drivers/block/loop.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/block/loop.c b/drivers/block/loop.c > index 54e091887199..1a5b4ecf54ec 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. > Let's see it this one goes through ... Reviewed-by: Hannes Reinecke <hare@suse.com> Cheers, Hannes
diff --git a/drivers/block/loop.c b/drivers/block/loop.c index 54e091887199..1a5b4ecf54ec 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.