lkml.org 
[lkml]   [2020]   [Jul]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.14 012/125] cifs: update ctime and mtime during truncate
    Date
    From: Zhang Xiaoxu <zhangxiaoxu5@huawei.com>

    [ Upstream commit 5618303d8516f8ac5ecfe53ee8e8bc9a40eaf066 ]

    As the man description of the truncate, if the size changed,
    then the st_ctime and st_mtime fields should be updated. But
    in cifs, we doesn't do it.

    It lead the xfstests generic/313 failed.

    So, add the ATTR_MTIME|ATTR_CTIME flags on attrs when change
    the file size

    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Zhang Xiaoxu <zhangxiaoxu5@huawei.com>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    fs/cifs/inode.c | 9 +++++++++
    1 file changed, 9 insertions(+)

    diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c
    index 528fe225b65a9..d0d295a28b6e4 100644
    --- a/fs/cifs/inode.c
    +++ b/fs/cifs/inode.c
    @@ -2216,6 +2216,15 @@ set_size_out:
    if (rc == 0) {
    cifsInode->server_eof = attrs->ia_size;
    cifs_setsize(inode, attrs->ia_size);
    +
    + /*
    + * The man page of truncate says if the size changed,
    + * then the st_ctime and st_mtime fields for the file
    + * are updated.
    + */
    + attrs->ia_ctime = attrs->ia_mtime = current_time(inode);
    + attrs->ia_valid |= ATTR_CTIME | ATTR_MTIME;
    +
    cifs_truncate_page(inode->i_mapping, inode->i_size);
    }

    --
    2.25.1


    \
     
     \ /
      Last update: 2020-07-20 19:10    [W:4.073 / U:0.048 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site