Fair enough. Please find attached an update to the UNMAP patch that only tries to punch a hole for the hole region and ignores the underlying block boundaries. It will rely on the underlying filesystem to zero out any unaligned regions. You still need the "TGTIMG patch to be applied first. After this patch, I also have patches to add WRITE_SAME10/16 that can also be used to punch holes in LUNs. regards ronnie sahlberg On Sat, Apr 14, 2012 at 9:00 PM, FUJITA Tomonori <fujita.tomonori@xxxxxxxxxxxxx> wrote: > On Sat, 14 Apr 2012 19:24:10 +1000 > ronnie sahlberg <ronniesahlberg@xxxxxxxxx> wrote: > >> On Sat, Apr 14, 2012 at 6:24 PM, FUJITA Tomonori >> <fujita.tomonori@xxxxxxxxxxxxx> wrote: >>> On Sun, 1 Apr 2012 08:26:27 +1000 >>> ronnie sahlberg <ronniesahlberg@xxxxxxxxx> wrote: >>> >> ... >>>> + /* we can only punch holes aligned for full blocks. >>>> + * if not aligned to a block boundary we overwrite >>>> + * the first partial block with zero >>>> + */ >>> >>> Where this limit comes from? seems that ext4 can handle the unaligned >>> request. >>> >> >> BTRFS on linux 3.2 >> >> You cant punch holes smaller than the fs blocksize anyway so it is >> either replaced by "write all zero" >> in tgtd or relying on the underlying filesystem doing it for you >> instead of failing. > > I don't think that the current inconsistent situation is good (some > file systems do zero-ing and some don't). I prefer file systems to > handle this.
Attachment:
0002-SBC-UNMAP-Add-support-for-thin-provisioning-and-the-.patch.gz
Description: GNU Zip compressed data
Attachment:
0002-SBC-UNMAP-Add-support-for-thin-provisioning-and-the-.patch
Description: Binary data