Skip to content

Commit 46e62a0

Browse files
committed
Merge tag 'for_v4.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs
Pull UDF and ext2 update from Jan Kara. * tag 'for_v4.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs: ext2: use ktime_get_real_seconds for timestamps udf: convert inode stamps to timespec64
2 parents 5c60a73 + fe2c325 commit 46e62a0

File tree

9 files changed

+33
-45
lines changed

9 files changed

+33
-45
lines changed

fs/ext2/inode.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ void ext2_evict_inode(struct inode * inode)
8686
if (want_delete) {
8787
sb_start_intwrite(inode->i_sb);
8888
/* set dtime */
89-
EXT2_I(inode)->i_dtime = get_seconds();
89+
EXT2_I(inode)->i_dtime = ktime_get_real_seconds();
9090
mark_inode_dirty(inode);
9191
__ext2_write_inode(inode, inode_needs_sync(inode));
9292
/* truncate to 0 */

fs/ext2/super.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -682,7 +682,8 @@ static int ext2_setup_super (struct super_block * sb,
682682
"running e2fsck is recommended");
683683
else if (le32_to_cpu(es->s_checkinterval) &&
684684
(le32_to_cpu(es->s_lastcheck) +
685-
le32_to_cpu(es->s_checkinterval) <= get_seconds()))
685+
le32_to_cpu(es->s_checkinterval) <=
686+
ktime_get_real_seconds()))
686687
ext2_msg(sb, KERN_WARNING,
687688
"warning: checktime reached, "
688689
"running e2fsck is recommended");
@@ -1248,7 +1249,7 @@ void ext2_sync_super(struct super_block *sb, struct ext2_super_block *es,
12481249
spin_lock(&EXT2_SB(sb)->s_lock);
12491250
es->s_free_blocks_count = cpu_to_le32(ext2_count_free_blocks(sb));
12501251
es->s_free_inodes_count = cpu_to_le32(ext2_count_free_inodes(sb));
1251-
es->s_wtime = cpu_to_le32(get_seconds());
1252+
es->s_wtime = cpu_to_le32(ktime_get_real_seconds());
12521253
/* unlock before we do IO */
12531254
spin_unlock(&EXT2_SB(sb)->s_lock);
12541255
mark_buffer_dirty(EXT2_SB(sb)->s_sbh);
@@ -1360,7 +1361,7 @@ static int ext2_remount (struct super_block * sb, int * flags, char * data)
13601361
* the rdonly flag and then mark the partition as valid again.
13611362
*/
13621363
es->s_state = cpu_to_le16(sbi->s_mount_state);
1363-
es->s_mtime = cpu_to_le32(get_seconds());
1364+
es->s_mtime = cpu_to_le32(ktime_get_real_seconds());
13641365
spin_unlock(&sbi->s_lock);
13651366

13661367
err = dquot_suspend(sb, -1);

fs/udf/ialloc.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ struct inode *udf_new_inode(struct inode *dir, umode_t mode)
125125
else
126126
iinfo->i_alloc_type = ICBTAG_FLAG_AD_LONG;
127127
inode->i_mtime = inode->i_atime = inode->i_ctime = current_time(inode);
128-
iinfo->i_crtime = timespec64_to_timespec(inode->i_mtime);
128+
iinfo->i_crtime = inode->i_mtime;
129129
if (unlikely(insert_inode_locked(inode) < 0)) {
130130
make_bad_inode(inode);
131131
iput(inode);

fs/udf/inode.c

Lines changed: 16 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1270,7 +1270,6 @@ static int udf_read_inode(struct inode *inode, bool hidden_inode)
12701270
struct udf_inode_info *iinfo = UDF_I(inode);
12711271
struct udf_sb_info *sbi = UDF_SB(inode->i_sb);
12721272
struct kernel_lb_addr *iloc = &iinfo->i_location;
1273-
struct timespec ts;
12741273
unsigned int link_count;
12751274
unsigned int indirections = 0;
12761275
int bs = inode->i_sb->s_blocksize;
@@ -1443,12 +1442,9 @@ static int udf_read_inode(struct inode *inode, bool hidden_inode)
14431442
inode->i_blocks = le64_to_cpu(fe->logicalBlocksRecorded) <<
14441443
(inode->i_sb->s_blocksize_bits - 9);
14451444

1446-
udf_disk_stamp_to_time(&ts, fe->accessTime);
1447-
inode->i_atime = timespec_to_timespec64(ts);
1448-
udf_disk_stamp_to_time(&ts, fe->modificationTime);
1449-
inode->i_mtime = timespec_to_timespec64(ts);
1450-
udf_disk_stamp_to_time(&ts, fe->attrTime);
1451-
inode->i_ctime = timespec_to_timespec64(ts);
1445+
udf_disk_stamp_to_time(&inode->i_atime, fe->accessTime);
1446+
udf_disk_stamp_to_time(&inode->i_mtime, fe->modificationTime);
1447+
udf_disk_stamp_to_time(&inode->i_ctime, fe->attrTime);
14521448

14531449
iinfo->i_unique = le64_to_cpu(fe->uniqueID);
14541450
iinfo->i_lenEAttr = le32_to_cpu(fe->lengthExtendedAttr);
@@ -1458,13 +1454,10 @@ static int udf_read_inode(struct inode *inode, bool hidden_inode)
14581454
inode->i_blocks = le64_to_cpu(efe->logicalBlocksRecorded) <<
14591455
(inode->i_sb->s_blocksize_bits - 9);
14601456

1461-
udf_disk_stamp_to_time(&ts, efe->accessTime);
1462-
inode->i_atime = timespec_to_timespec64(ts);
1463-
udf_disk_stamp_to_time(&ts, efe->modificationTime);
1464-
inode->i_mtime = timespec_to_timespec64(ts);
1457+
udf_disk_stamp_to_time(&inode->i_atime, efe->accessTime);
1458+
udf_disk_stamp_to_time(&inode->i_mtime, efe->modificationTime);
14651459
udf_disk_stamp_to_time(&iinfo->i_crtime, efe->createTime);
1466-
udf_disk_stamp_to_time(&ts, efe->attrTime);
1467-
inode->i_ctime = timespec_to_timespec64(ts);
1460+
udf_disk_stamp_to_time(&inode->i_ctime, efe->attrTime);
14681461

14691462
iinfo->i_unique = le64_to_cpu(efe->uniqueID);
14701463
iinfo->i_lenEAttr = le32_to_cpu(efe->lengthExtendedAttr);
@@ -1601,7 +1594,7 @@ static int udf_sync_inode(struct inode *inode)
16011594
return udf_update_inode(inode, 1);
16021595
}
16031596

1604-
static void udf_adjust_time(struct udf_inode_info *iinfo, struct timespec time)
1597+
static void udf_adjust_time(struct udf_inode_info *iinfo, struct timespec64 time)
16051598
{
16061599
if (iinfo->i_crtime.tv_sec > time.tv_sec ||
16071600
(iinfo->i_crtime.tv_sec == time.tv_sec &&
@@ -1714,12 +1707,9 @@ static int udf_update_inode(struct inode *inode, int do_sync)
17141707
inode->i_sb->s_blocksize - sizeof(struct fileEntry));
17151708
fe->logicalBlocksRecorded = cpu_to_le64(lb_recorded);
17161709

1717-
udf_time_to_disk_stamp(&fe->accessTime,
1718-
timespec64_to_timespec(inode->i_atime));
1719-
udf_time_to_disk_stamp(&fe->modificationTime,
1720-
timespec64_to_timespec(inode->i_mtime));
1721-
udf_time_to_disk_stamp(&fe->attrTime,
1722-
timespec64_to_timespec(inode->i_ctime));
1710+
udf_time_to_disk_stamp(&fe->accessTime, inode->i_atime);
1711+
udf_time_to_disk_stamp(&fe->modificationTime, inode->i_mtime);
1712+
udf_time_to_disk_stamp(&fe->attrTime, inode->i_ctime);
17231713
memset(&(fe->impIdent), 0, sizeof(struct regid));
17241714
strcpy(fe->impIdent.ident, UDF_ID_DEVELOPER);
17251715
fe->impIdent.identSuffix[0] = UDF_OS_CLASS_UNIX;
@@ -1738,17 +1728,14 @@ static int udf_update_inode(struct inode *inode, int do_sync)
17381728
efe->objectSize = cpu_to_le64(inode->i_size);
17391729
efe->logicalBlocksRecorded = cpu_to_le64(lb_recorded);
17401730

1741-
udf_adjust_time(iinfo, timespec64_to_timespec(inode->i_atime));
1742-
udf_adjust_time(iinfo, timespec64_to_timespec(inode->i_mtime));
1743-
udf_adjust_time(iinfo, timespec64_to_timespec(inode->i_ctime));
1731+
udf_adjust_time(iinfo, inode->i_atime);
1732+
udf_adjust_time(iinfo, inode->i_mtime);
1733+
udf_adjust_time(iinfo, inode->i_ctime);
17441734

1745-
udf_time_to_disk_stamp(&efe->accessTime,
1746-
timespec64_to_timespec(inode->i_atime));
1747-
udf_time_to_disk_stamp(&efe->modificationTime,
1748-
timespec64_to_timespec(inode->i_mtime));
1735+
udf_time_to_disk_stamp(&efe->accessTime, inode->i_atime);
1736+
udf_time_to_disk_stamp(&efe->modificationTime, inode->i_mtime);
17491737
udf_time_to_disk_stamp(&efe->createTime, iinfo->i_crtime);
1750-
udf_time_to_disk_stamp(&efe->attrTime,
1751-
timespec64_to_timespec(inode->i_ctime));
1738+
udf_time_to_disk_stamp(&efe->attrTime, inode->i_ctime);
17521739

17531740
memset(&(efe->impIdent), 0, sizeof(efe->impIdent));
17541741
strcpy(efe->impIdent.ident, UDF_ID_DEVELOPER);

fs/udf/super.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1980,7 +1980,7 @@ static void udf_open_lvid(struct super_block *sb)
19801980
struct buffer_head *bh = sbi->s_lvid_bh;
19811981
struct logicalVolIntegrityDesc *lvid;
19821982
struct logicalVolIntegrityDescImpUse *lvidiu;
1983-
struct timespec ts;
1983+
struct timespec64 ts;
19841984

19851985
if (!bh)
19861986
return;
@@ -1992,7 +1992,7 @@ static void udf_open_lvid(struct super_block *sb)
19921992
mutex_lock(&sbi->s_alloc_mutex);
19931993
lvidiu->impIdent.identSuffix[0] = UDF_OS_CLASS_UNIX;
19941994
lvidiu->impIdent.identSuffix[1] = UDF_OS_ID_LINUX;
1995-
ktime_get_real_ts(&ts);
1995+
ktime_get_real_ts64(&ts);
19961996
udf_time_to_disk_stamp(&lvid->recordingDateAndTime, ts);
19971997
if (le32_to_cpu(lvid->integrityType) == LVID_INTEGRITY_TYPE_CLOSE)
19981998
lvid->integrityType = cpu_to_le32(LVID_INTEGRITY_TYPE_OPEN);
@@ -2017,7 +2017,7 @@ static void udf_close_lvid(struct super_block *sb)
20172017
struct buffer_head *bh = sbi->s_lvid_bh;
20182018
struct logicalVolIntegrityDesc *lvid;
20192019
struct logicalVolIntegrityDescImpUse *lvidiu;
2020-
struct timespec ts;
2020+
struct timespec64 ts;
20212021

20222022
if (!bh)
20232023
return;
@@ -2029,7 +2029,7 @@ static void udf_close_lvid(struct super_block *sb)
20292029
mutex_lock(&sbi->s_alloc_mutex);
20302030
lvidiu->impIdent.identSuffix[0] = UDF_OS_CLASS_UNIX;
20312031
lvidiu->impIdent.identSuffix[1] = UDF_OS_ID_LINUX;
2032-
ktime_get_real_ts(&ts);
2032+
ktime_get_real_ts64(&ts);
20332033
udf_time_to_disk_stamp(&lvid->recordingDateAndTime, ts);
20342034
if (UDF_MAX_WRITE_VERSION > le16_to_cpu(lvidiu->maxUDFWriteRev))
20352035
lvidiu->maxUDFWriteRev = cpu_to_le16(UDF_MAX_WRITE_VERSION);

fs/udf/udf_i.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ struct udf_ext_cache {
2828
*/
2929

3030
struct udf_inode_info {
31-
struct timespec i_crtime;
31+
struct timespec64 i_crtime;
3232
/* Physical address of inode */
3333
struct kernel_lb_addr i_location;
3434
__u64 i_unique;

fs/udf/udf_sb.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ struct udf_sb_info {
138138
rwlock_t s_cred_lock;
139139

140140
/* Root Info */
141-
struct timespec s_record_time;
141+
struct timespec64 s_record_time;
142142

143143
/* Fileset Info */
144144
__u16 s_serial_number;

fs/udf/udfdecl.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -258,8 +258,8 @@ extern struct long_ad *udf_get_filelongad(uint8_t *, int, uint32_t *, int);
258258
extern struct short_ad *udf_get_fileshortad(uint8_t *, int, uint32_t *, int);
259259

260260
/* udftime.c */
261-
extern void udf_disk_stamp_to_time(struct timespec *dest,
261+
extern void udf_disk_stamp_to_time(struct timespec64 *dest,
262262
struct timestamp src);
263-
extern void udf_time_to_disk_stamp(struct timestamp *dest, struct timespec src);
263+
extern void udf_time_to_disk_stamp(struct timestamp *dest, struct timespec64 src);
264264

265265
#endif /* __UDF_DECL_H */

fs/udf/udftime.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
#include <linux/time.h>
4242

4343
void
44-
udf_disk_stamp_to_time(struct timespec *dest, struct timestamp src)
44+
udf_disk_stamp_to_time(struct timespec64 *dest, struct timestamp src)
4545
{
4646
u16 typeAndTimezone = le16_to_cpu(src.typeAndTimezone);
4747
u16 year = le16_to_cpu(src.year);
@@ -70,9 +70,9 @@ udf_disk_stamp_to_time(struct timespec *dest, struct timestamp src)
7070
}
7171

7272
void
73-
udf_time_to_disk_stamp(struct timestamp *dest, struct timespec ts)
73+
udf_time_to_disk_stamp(struct timestamp *dest, struct timespec64 ts)
7474
{
75-
long seconds;
75+
time64_t seconds;
7676
int16_t offset;
7777
struct tm tm;
7878

0 commit comments

Comments
 (0)