@ -207,53 +207,6 @@ int qemu_pipe(int pipefd[2])
return ret ;
}
int qemu_utimens ( const char * path , const struct timespec * times )
{
struct timeval tv [ 2 ] , tv_now ;
struct stat st ;
int i ;
# ifdef CONFIG_UTIMENSAT
int ret ;
ret = utimensat ( AT_FDCWD , path , times , AT_SYMLINK_NOFOLLOW ) ;
if ( ret ! = - 1 | | errno ! = ENOSYS ) {
return ret ;
}
# endif
/* Fallback: use utimes() instead of utimensat() */
/* happy if special cases */
if ( times [ 0 ] . tv_nsec = = UTIME_OMIT & & times [ 1 ] . tv_nsec = = UTIME_OMIT ) {
return 0 ;
}
if ( times [ 0 ] . tv_nsec = = UTIME_NOW & & times [ 1 ] . tv_nsec = = UTIME_NOW ) {
return utimes ( path , NULL ) ;
}
/* prepare for hard cases */
if ( times [ 0 ] . tv_nsec = = UTIME_NOW | | times [ 1 ] . tv_nsec = = UTIME_NOW ) {
gettimeofday ( & tv_now , NULL ) ;
}
if ( times [ 0 ] . tv_nsec = = UTIME_OMIT | | times [ 1 ] . tv_nsec = = UTIME_OMIT ) {
stat ( path , & st ) ;
}
for ( i = 0 ; i < 2 ; i + + ) {
if ( times [ i ] . tv_nsec = = UTIME_NOW ) {
tv [ i ] . tv_sec = tv_now . tv_sec ;
tv [ i ] . tv_usec = tv_now . tv_usec ;
} else if ( times [ i ] . tv_nsec = = UTIME_OMIT ) {
tv [ i ] . tv_sec = ( i = = 0 ) ? st . st_atime : st . st_mtime ;
tv [ i ] . tv_usec = 0 ;
} else {
tv [ i ] . tv_sec = times [ i ] . tv_sec ;
tv [ i ] . tv_usec = times [ i ] . tv_nsec / 1000 ;
}
}
return utimes ( path , & tv [ 0 ] ) ;
}
char *
qemu_get_local_state_pathname ( const char * relative_pathname )
{