aboutsummaryrefslogtreecommitdiffstats
path: root/libexfat/node.c
diff options
context:
space:
mode:
Diffstat (limited to 'libexfat/node.c')
-rw-r--r--libexfat/node.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/libexfat/node.c b/libexfat/node.c
index ab1d7d6..3b78c63 100644
--- a/libexfat/node.c
+++ b/libexfat/node.c
@@ -135,9 +135,10 @@ static void init_node_meta1(struct exfat_node* node,
node->attrib = le16_to_cpu(meta1->attrib);
node->continuations = meta1->continuations;
node->mtime = exfat_exfat2unix(meta1->mdate, meta1->mtime,
- meta1->mtime_cs);
+ meta1->mtime_cs, meta1->mtime_tzo);
/* there is no centiseconds field for atime */
- node->atime = exfat_exfat2unix(meta1->adate, meta1->atime, 0);
+ node->atime = exfat_exfat2unix(meta1->adate, meta1->atime,
+ 0, meta1->atime_tzo);
}
static void init_node_meta2(struct exfat_node* node,
@@ -646,8 +647,9 @@ int exfat_flush_node(struct exfat* ef, struct exfat_node* node)
meta1->attrib = cpu_to_le16(node->attrib);
exfat_unix2exfat(node->mtime, &meta1->mdate, &meta1->mtime,
- &meta1->mtime_cs);
- exfat_unix2exfat(node->atime, &meta1->adate, &meta1->atime, NULL);
+ &meta1->mtime_cs, &meta1->mtime_tzo);
+ exfat_unix2exfat(node->atime, &meta1->adate, &meta1->atime,
+ NULL, &meta1->atime_tzo);
meta2->size = meta2->valid_size = cpu_to_le64(node->size);
meta2->start_cluster = cpu_to_le32(node->start_cluster);
meta2->flags = EXFAT_FLAG_ALWAYS1;
@@ -895,10 +897,11 @@ static int commit_entry(struct exfat* ef, struct exfat_node* dir,
meta1->continuations = 1 + name_entries;
meta1->attrib = cpu_to_le16(attrib);
exfat_unix2exfat(time(NULL), &meta1->crdate, &meta1->crtime,
- &meta1->crtime_cs);
+ &meta1->crtime_cs, &meta1->crtime_tzo);
meta1->adate = meta1->mdate = meta1->crdate;
meta1->atime = meta1->mtime = meta1->crtime;
meta1->mtime_cs = meta1->crtime_cs; /* there is no atime_cs */
+ meta1->atime_tzo = meta1->mtime_tzo = meta1->crtime_tzo;
meta2->type = EXFAT_ENTRY_FILE_INFO;
meta2->flags = EXFAT_FLAG_ALWAYS1;