lkml.org 
[lkml]   [2023]   [Aug]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Date
    Subject[PATCH v7 05/13] fat: make fat_update_time get its own timestamp
    In later patches, we're going to drop the "now" parameter from the
    update_time operation. Fix fat_update_time to fetch its own timestamp.
    It turns out that this is easily done by just passing a NULL timestamp
    pointer to fat_update_time.

    Also, it may be that things have changed by the time we get to calling
    fat_update_time after checking inode_needs_update_time. Ensure that we
    attempt the i_version bump if any of the S_* flags besides S_ATIME are
    set.

    Signed-off-by: Jeff Layton <jlayton@kernel.org>
    ---
    fs/fat/misc.c | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    diff --git a/fs/fat/misc.c b/fs/fat/misc.c
    index 67006ea08db6..8cab87145d63 100644
    --- a/fs/fat/misc.c
    +++ b/fs/fat/misc.c
    @@ -347,14 +347,14 @@ int fat_update_time(struct inode *inode, struct timespec64 *now, int flags)
    return 0;

    if (flags & (S_ATIME | S_CTIME | S_MTIME)) {
    - fat_truncate_time(inode, now, flags);
    + fat_truncate_time(inode, NULL, flags);
    if (inode->i_sb->s_flags & SB_LAZYTIME)
    dirty_flags |= I_DIRTY_TIME;
    else
    dirty_flags |= I_DIRTY_SYNC;
    }

    - if ((flags & S_VERSION) && inode_maybe_inc_iversion(inode, false))
    + if ((flags & (S_VERSION|S_CTIME|S_MTIME)) && inode_maybe_inc_iversion(inode, false))
    dirty_flags |= I_DIRTY_SYNC;

    __mark_inode_dirty(inode, dirty_flags);
    --
    2.41.0

    \
     
     \ /
      Last update: 2023-08-07 21:42    [W:4.203 / U:0.036 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site