lkml.org 
[lkml]   [2019]   [Jul]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 17/20] fs: hpfs: Initialize filesystem timestamp ranges
    Date
    Fill in the appropriate limits to avoid inconsistencies
    in the vfs cached inode times when timestamps are
    outside the permitted range.

    Also change the local_to_gmt() to use time64_t instead
    of time32_t.

    Signed-off-by: Deepa Dinamani <deepa.kernel@gmail.com>
    Cc: mikulas@artax.karlin.mff.cuni.cz
    ---
    fs/hpfs/hpfs_fn.h | 6 ++----
    fs/hpfs/super.c | 2 ++
    2 files changed, 4 insertions(+), 4 deletions(-)

    diff --git a/fs/hpfs/hpfs_fn.h b/fs/hpfs/hpfs_fn.h
    index ab2e7cc2ff33..1cca83218fb5 100644
    --- a/fs/hpfs/hpfs_fn.h
    +++ b/fs/hpfs/hpfs_fn.h
    @@ -334,7 +334,7 @@ long hpfs_ioctl(struct file *file, unsigned cmd, unsigned long arg);
    * local time (HPFS) to GMT (Unix)
    */

    -static inline time64_t local_to_gmt(struct super_block *s, time32_t t)
    +static inline time64_t local_to_gmt(struct super_block *s, time64_t t)
    {
    extern struct timezone sys_tz;
    return t + sys_tz.tz_minuteswest * 60 + hpfs_sb(s)->sb_timeshift;
    @@ -343,9 +343,7 @@ static inline time64_t local_to_gmt(struct super_block *s, time32_t t)
    static inline time32_t gmt_to_local(struct super_block *s, time64_t t)
    {
    extern struct timezone sys_tz;
    - t = t - sys_tz.tz_minuteswest * 60 - hpfs_sb(s)->sb_timeshift;
    -
    - return clamp_t(time64_t, t, 0, U32_MAX);
    + return t - sys_tz.tz_minuteswest * 60 - hpfs_sb(s)->sb_timeshift;
    }

    static inline time32_t local_get_seconds(struct super_block *s)
    diff --git a/fs/hpfs/super.c b/fs/hpfs/super.c
    index 9db6d84f0d62..0a677a9aaf34 100644
    --- a/fs/hpfs/super.c
    +++ b/fs/hpfs/super.c
    @@ -614,6 +614,8 @@ static int hpfs_fill_super(struct super_block *s, void *options, int silent)
    s->s_magic = HPFS_SUPER_MAGIC;
    s->s_op = &hpfs_sops;
    s->s_d_op = &hpfs_dentry_operations;
    + s->s_time_min = local_to_gmt(s, 0);
    + s->s_time_max = local_to_gmt(s, U32_MAX);

    sbi->sb_root = le32_to_cpu(superblock->root);
    sbi->sb_fs_size = le32_to_cpu(superblock->n_sectors);
    --
    2.17.1
    \
     
     \ /
      Last update: 2019-07-30 03:52    [W:3.533 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site