Kirill, Sorry, the holiday break got in the way. > But I also worry about NOFALLBACK case. There are possible block > devices, which support write zeroes, but they can't allocate blocks > (block allocation are just not appliable for them, say, these are all > ordinary hdd). Correct. We shouldn't go down this path unless a device is thinly provisioned (i.e. max_discard_sectors > 0). > But won't it be a good thing to return EOPNOTSUPP right from > __blkdev_issue_write_zeroes() in case of block device can't allocate > blocks (q->limits.write_zeroes_can_allocate in the patch below)? Here > is just a way to underline block devices, which support write zeroes, > but allocation of blocks is meant nothing for them (wasting of time). I don't like "write_zeroes_can_allocate" because that makes assumptions about WRITE ZEROES being the command of choice. I suggest we call it "max_allocate_sectors" to mirror "max_discard_sectors". I.e. put emphasis on the semantic operation and not the plumbing. -- Martin K. Petersen Oracle Linux Engineering