__u32 image_device; /* Device number of image file */
__u32 image_inode; /* Inode number of image file */
- __u32 image_time; /* Time of image creation */
- __u32 image_reserved[8];
+ __u32 image_time_lo; /* Time of image creation */
+ __u32 image_time_hi; /* High bits of image test creation */
+ __u32 image_reserved[7];
__u32 offset_super; /* Byte offset of the sb and descriptors */
__u32 offset_inode; /* Byte offset of the inode table */
struct ext2_image_hdr hdr;
struct stat st;
errcode_t retval;
+ time_t now = time(0);
write_header(fd, NULL, sizeof(struct ext2_image_hdr), fs->blocksize);
memset(&hdr, 0, sizeof(struct ext2_image_hdr));
}
memcpy(hdr.fs_uuid, fs->super->s_uuid, sizeof(hdr.fs_uuid));
- hdr.image_time = ext2fs_cpu_to_le32(time(0));
+ hdr.image_time_lo = ext2fs_cpu_to_le32(now & 0xFFFFFFFF);
+#if (SIZEOF_TIME_T > 4)
+ hdr.image_time_hi = ext2fs_cpu_to_le32(now >> 32);
+#else
+ hdr_image_time_hi = 0;
+#endif
write_header(fd, &hdr, sizeof(struct ext2_image_hdr), fs->blocksize);
}