• Deepa Dinamani's avatar
    ext4: Initialize timestamps limits · 4881c497
    Deepa Dinamani authored
    ext4 has different overflow limits for max filesystem
    timestamps based on the extra bytes available.
    
    The timestamp limits are calculated according to the
    encoding table in
    a4dad1aei(ext4: Fix handling of extended tv_sec):
    
    * extra  msb of                         adjust for signed
    * epoch  32-bit                         32-bit tv_sec to
    * bits   time    decoded 64-bit tv_sec  64-bit tv_sec      valid time range
    * 0 0    1    -0x80000000..-0x00000001  0x000000000   1901-12-13..1969-12-31
    * 0 0    0    0x000000000..0x07fffffff  0x000000000   1970-01-01..2038-01-19
    * 0 1    1    0x080000000..0x0ffffffff  0x100000000   2038-01-19..2106-02-07
    * 0 1    0    0x100000000..0x17fffffff  0x100000000   2106-02-07..2174-02-25
    * 1 0    1    0x180000000..0x1ffffffff  0x200000000   2174-02-25..2242-03-16
    * 1 0    0    0x200000000..0x27fffffff  0x200000000   2242-03-16..2310-04-04
    * 1 1    1    0x280000000..0x2ffffffff  0x300000000   2310-04-04..2378-04-22
    * 1 1    0    0x300000000..0x37fffffff  0x300000000   2378-04-22..2446-05-10
    
    Note that the time limits are not correct for deletion times.
    
    Added a warn when an inode cannot be extended to incorporate an
    extended timestamp.
    Signed-off-by: default avatarDeepa Dinamani <deepa.kernel@gmail.com>
    Reviewed-by: default avatarAndreas Dilger <adilger@dilger.ca>
    Acked-by: default avatarJeff Layton <jlayton@kernel.org>
    Cc: tytso@mit.edu
    Cc: adilger.kernel@dilger.ca
    Cc: linux-ext4@vger.kernel.org
    4881c497
super.c 174 KB