Re: [PATCH v2 2/2] loop: Better discard support for block devices
From: Evan Green <hidden>
Date: 2019-02-26 17:23:58
Also in:
lkml
On Thu, Feb 14, 2019 at 10:00 AM Evan Green [off-list ref] wrote:
On Wed, Feb 13, 2019 at 6:40 PM Martin K. Petersen [off-list ref] wrote:quoted
Evan,quoted
If the backing device for a loop device is a block device, then mirror the discard properties of the underlying block device into the loop device. While in there, differentiate between REQ_OP_DISCARD and REQ_OP_WRITE_ZEROES, which are different for block devices, but which the loop device had just been lumping together.Bubbling up the queue limits from the backing device is fine. However, I'm not sure why you are requiring a filesystem to be on a discard-capable device for REQ_OP_DISCARD to have an effect? Punching a hole in a file is semantically the same as discarding.Hi Martin, Thanks so much for taking a look at this patch, I was getting nervous it was languishing again. I got confused by this comment though. My intention was to not change behavior for loop devices backed by a regular file system file. The changes in loop_config_discard() should result in QUEUE_FLAG_DISCARD being set for backings of regular files that support f_op->fallocate(), same as before my patch. The change in lo_discard() to call blk_queue_discard() on the loopback queue itself was just shorthand to avoid duplicating all those if statements from loop_config_discard again. Am I missing a spot where I've implicitly changed the behavior for file-backed loop devices? -Evan
Hi Martin, Did you get a chance to take a look at my reply? This error log plagues our Chrome OS installer, and I'm hopeful I've found an approach here that's upstream-friendly. But if it's not, let me know and I can fix it. -Evan