+
+ tar_stat_init (&subdir);
+ subdir.parent = st;
+ subdir.fd = openat (st->fd, string + 1,
+ open_read_flags | O_DIRECTORY);
+ if (subdir.fd < 0)
+ open_diag (namebuf);
+ else if (fstat (subdir.fd, &subdir.stat) != 0)
+ stat_diag (namebuf);
+ else if (! (O_DIRECTORY || S_ISDIR (subdir.stat.st_mode)))
+ {
+ errno = ENOTDIR;
+ open_diag (namebuf);
+ }
+ else
+ {
+ subdir.orig_file_name = xstrdup (namebuf);
+ add_hierarchy_to_namelist (&subdir, np);
+ }
+
+ tar_stat_destroy (&subdir);