]> 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)
commite4e2bac88651d1a9147be6452114dd88d35b99da
treeafee073ae3aa38326b8f0a4b2e4655cb7b463181
parentc051ffa1d518da43afb9407df555cb4cf49edc67
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