Wednesday, January 03, 2007
ZFS stores file creation time
I've probably run across this at some point and forgotten it, but I happened to notice it while looking at something else. ZFS stores the file creation time (crtime) in addition to the traditional atime, mtime, and ctime:
And, of course, this can be seen in the source code:
juser@server> sudo zdb -dddd trashme [ ... ] Object lvl iblk dblk lsize asize type 14 2 16K 128K 3.75M 3.75M ZFS plain file 264 bonus ZFS znode path /foo atime Wed Jan 3 16:20:42 2007 mtime Wed Jan 3 16:20:42 2007 ctime Wed Jan 3 16:20:42 2007 crtime Wed Jan 3 15:26:53 2007 [ ... ]
And, of course, this can be seen in the source code:
87 /* 88 * This is the persistent portion of the znode. It is stored 89 * in the "bonus buffer" of the file. Short symbolic links 90 * are also stored in the bonus buffer. 91 */ 92 typedef struct znode_phys { 93 uint64_t zp_atime[2]; /* 0 - last file access time */ 94 uint64_t zp_mtime[2]; /* 16 - last file modification time */ 95 uint64_t zp_ctime[2]; /* 32 - last file change time */ 96 uint64_t zp_crtime[2]; /* 48 - creation time */
Comments:
<< Home
Good observation. Do you know how to import a file system (say a USB drive) into zfs in such a way as to preserve the creation times? When I try rsync from a remote host the creation times end up being the time of transfer.
Post a Comment
<< Home