On Thu, Feb 14, 2019 at 10:00 AM Evan Green <evgreen@xxxxxxxxxxxx> wrote: > > On Wed, Feb 13, 2019 at 6:40 PM Martin K. Petersen > <martin.petersen@xxxxxxxxxx> wrote: > > > > > > Evan, > > > > > 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