+ for (i = 0; names[i] != NULL; ++i) {
+ int r;
+ struct stat statbuf;
+
+ r = fstatat (path_fd, names[i], &statbuf, AT_SYMLINK_NOFOLLOW);
+ if (r == -1)
+ ret->guestfs_int_stat_list_val[i].ino = -1;
+ else {
+ ret->guestfs_int_stat_list_val[i].dev = statbuf.st_dev;
+ ret->guestfs_int_stat_list_val[i].ino = statbuf.st_ino;
+ ret->guestfs_int_stat_list_val[i].mode = statbuf.st_mode;
+ ret->guestfs_int_stat_list_val[i].nlink = statbuf.st_nlink;
+ ret->guestfs_int_stat_list_val[i].uid = statbuf.st_uid;
+ ret->guestfs_int_stat_list_val[i].gid = statbuf.st_gid;
+ ret->guestfs_int_stat_list_val[i].rdev = statbuf.st_rdev;
+ ret->guestfs_int_stat_list_val[i].size = statbuf.st_size;
+#ifdef HAVE_STRUCT_STAT_ST_BLKSIZE
+ ret->guestfs_int_stat_list_val[i].blksize = statbuf.st_blksize;
+#else
+ ret->guestfs_int_stat_list_val[i].blksize = -1;
+#endif
+#ifdef HAVE_STRUCT_STAT_ST_BLOCKS
+ ret->guestfs_int_stat_list_val[i].blocks = statbuf.st_blocks;
+#else
+ ret->guestfs_int_stat_list_val[i].blocks = -1;
+#endif
+ ret->guestfs_int_stat_list_val[i].atime = statbuf.st_atime;
+ ret->guestfs_int_stat_list_val[i].mtime = statbuf.st_mtime;
+ ret->guestfs_int_stat_list_val[i].ctime = statbuf.st_ctime;
+ }