Lukas Czerner <lczerner@xxxxxxxxxx> writes: >> @@ -484,6 +485,29 @@ static int do_bio_filebacked(struct loop_device *lo, struct bio *bio) >> } >> } >> >> + /* >> + * We use punch hole to reclaim the free space used by the >> + * image a.k.a. discard. However we do support discard if >> + * encryption is enabled, because it may give an attacker >> + * useful information. >> + */ >> + if (bio->bi_rw & REQ_DISCARD) { >> + struct file *file = lo->lo_backing_file; >> + int mode = FALLOC_FL_PUNCH_HOLE | FALLOC_FL_KEEP_SIZE; >> + >> + if ((!file->f_op->fallocate) || >> + lo->lo_encrypt_key_size) { >> + ret = -EOPNOTSUPP; >> + goto out; >> + } >> + ret = file->f_op->fallocate(file, mode, pos, >> + bio->bi_size); >> + if (unlikely(ret && ret != -EINVAL && >> + ret != -EOPNOTSUPP)) >> + ret = -EIO; >> + goto out; >> + } >> + Seems you missed the bizarre case of configuring a loop device over top of a block device. Cheers, Jeff -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html