• Ronnie Sahlberg's avatar
    cifs: truncate the inode and mapping when we simulate fcollapse · 84330d41
    Ronnie Sahlberg authored
    RHBZ:1997367
    
    When we collapse a range in smb3_collapse_range() we must make sure
    we update the inode size and pagecache accordingly.
    
    If not, both inode size and pagecahce may be stale until it is refreshed.
    
    This can be demonstrated for the inode size by running :
    
    xfs_io -i -f -c "truncate 320k" -c "fcollapse 64k 128k" -c "fiemap -v"  \
    /mnt/testfile
    
    where we can see the result of stale data in the fiemap output.
    The third line of the output is wrong, all this data should be truncated.
    
     EXT: FILE-OFFSET      BLOCK-RANGE      TOTAL FLAGS
       0: [0..127]:        hole               128
       1: [128..383]:      128..383           256   0x1
       2: [384..639]:      hole               256
    
    And the correct output, when the inode size has been updated correctly should
    look like this:
    
     EXT: FILE-OFFSET      BLOCK-RANGE      TOTAL FLAGS
       0: [0..127]:        hole               128
       1: [128..383]:      128..383           256   0x1
    Reported-by: default avatarXiaoli Feng <xifeng@redhat.com>
    Reported-by: default avatarkernel test robot <lkp@intel.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarRonnie Sahlberg <lsahlber@redhat.com>
    Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
    84330d41
smb2ops.c 165 KB