• Nicholas Bellinger's avatar
    target/file: Add WRITE_SAME w/ UNMAP=0 emulation support · 7b745c84
    Nicholas Bellinger authored
    This patch adds support for emulation of WRITE_SAME w/ UNMAP=0 within
    fd_execute_write_same() backend code.
    
    The emulation uses vfs_writev() to submit a locally populated buffer
    from the received WRITE_SAME scatterlist block for duplication, and by
    default enforces a limit of max_write_same_len=0x1000 (8192) sectors up
    to the limit of 1024 iovec entries for the single call to vfs_writev().
    
    It also sets max_write_same_len to the operational default at setup ->
    fd_configure_device() time.
    
    Tested with 512, 1k, 2k, and 4k block_sizes.
    
    (asias: convert to vzalloc)
    
    Cc: Martin K. Petersen <martin.petersen@oracle.com>
    Cc: Christoph Hellwig <hch@lst.de>
    Cc: Asias He <asias@redhat.com>
    Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
    7b745c84
target_core_file.c 16.3 KB