]> git.baikalelectronics.ru Git - kernel.git/commit
target/file: Add WRITE_SAME w/ UNMAP=1 emulation support
authorAsias He <asias@redhat.com>
Mon, 25 Feb 2013 06:03:42 +0000 (14:03 +0800)
committerNicholas Bellinger <nab@linux-iscsi.org>
Thu, 25 Apr 2013 08:05:23 +0000 (01:05 -0700)
commit3e5d6d3e89934e4795b9dbdbfbc06ba8c663bebe
treeafee073ae3aa38326b8f0a4b2e4655cb7b463181
parent581e316ca355ea4410392d947abb8a46fb71f85a
target/file: Add WRITE_SAME w/ UNMAP=1 emulation support

This patch adds support for emulation of WRITE_SAME w/ UNMAP=1 within
fd_execute_write_same_unmap() backend code.

If the FILEIO backend is normal file, the emulation uses fallocate to
punch hole to reclaim the free space used by the file. If the FILEIO
backend is block device, the emulation uses blkdev_issue_discard().

Tested with 512, 1k, 2k, and 4k block_sizes.

Changes in v2:
- Set the various dev->dev_attrib.*unmap* values (nab)

Cc: Christoph Hellwig <hch@lst.de>
Cc: Martin K. Petersen <martin.petersen@oracle.com>
Cc: Nicholas Bellinger <nab@linux-iscsi.org>
Signed-off-by: Asias He <asias@redhat.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
drivers/target/target_core_file.c