static int winfs_utimens(struct file *f, const struct timespec *times) { struct winfs_file *winfs = (struct winfs_file *)f; if (!times) { SYSTEMTIME time; GetSystemTime(&time); FILETIME filetime; SystemTimeToFileTime(&time, &filetime); SetFileTime(winfs->handle, NULL, &filetime, &filetime); } else { FILETIME actime, modtime; unix_timespec_to_filetime(×[0], &actime); unix_timespec_to_filetime(×[1], &modtime); SetFileTime(winfs->handle, NULL, &actime, &modtime); } return 0; }
static int winfs_utimens(struct file *f, const struct timespec *times) { AcquireSRWLockShared(&f->rw_lock); struct winfs_file *winfs = (struct winfs_file *)f; if (!times) { SYSTEMTIME time; GetSystemTime(&time); FILETIME filetime; SystemTimeToFileTime(&time, &filetime); SetFileTime(winfs->handle, NULL, &filetime, &filetime); } else { FILETIME actime, modtime; unix_timespec_to_filetime(×[0], &actime); unix_timespec_to_filetime(×[1], &modtime); SetFileTime(winfs->handle, NULL, &actime, &modtime); } ReleaseSRWLockShared(&f->rw_lock); return 0; }