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