• Steve French's avatar
    Add sparse file support to SMB2/SMB3 mounts · 3d1a3745
    Steve French authored
    Many Linux filesystes make a file "sparse" when extending
    a file with ftruncate. This does work for CIFS to Samba
    (only) but not for SMB2/SMB3 (to Samba or Windows) since
    there is a "set sparse" fsctl which is supposed to be
    sent to mark a file as sparse.
    
    This patch marks a file as sparse by sending this simple
    set sparse fsctl if it is extended more than 2 pages.
    It has been tested to Windows 8.1, Samba and various
    SMB2/SMB3 servers which do support setting sparse (and
    MacOS which does not appear to support the fsctl yet).
    If a server share does not support setting a file
    as sparse, then we do not retry setting sparse on that
    share.
    
    The disk space savings for sparse files can be quite
    large (even more significant on Windows servers than Samba).
    Signed-off-by: default avatarSteve French <smfrench@gmail.com>
    Reviewed-by: default avatarShirish Pargaonkar <spargaonkar@suse.com>
    3d1a3745
smb2pdu.c 72.5 KB