Index: msdosfs_vnops.c =================================================================== --- msdosfs_vnops.c (revision 214743) +++ msdosfs_vnops.c (working copy) @@ -480,7 +480,8 @@ if (error) return error; } - if (vap->va_atime.tv_sec != VNOVAL || vap->va_mtime.tv_sec != VNOVAL) { + if (vap->va_atime.tv_sec != VNOVAL || vap->va_mtime.tv_sec != VNOVAL + || vap->va_birthtime.tv_sec != VNOVAL) { if (vp->v_mount->mnt_flag & MNT_RDONLY) return (EROFS); if (vap->va_vaflags & VA_UTIMES_NULL) { @@ -501,6 +502,11 @@ timespec2fattime(&vap->va_mtime, 0, &dep->de_MDate, &dep->de_MTime, NULL); } + if (vap->va_birthtime.tv_sec != VNOVAL) { + dep->de_flag &= ~DE_CREATE; + timespec2fattime(&vap->va_birthtime, 0, + &dep->de_CDate, &dep->de_CTime, NULL); + } dep->de_Attributes |= ATTR_ARCHIVE; dep->de_flag |= DE_MODIFIED; }