示例#1
0
/* Return a directory entry for a given file NAME, or zero if none found.  */
static struct directory *
find_directory (const char *name)
{
  if (! directory_table)
    return 0;
  else
    {
      char *caname = normalize_filename (name);
      struct directory *dir = make_directory (name, caname);
      struct directory *ret = hash_lookup (directory_table, dir);
      free_directory (dir);
      return ret;
    }
}
示例#2
0
/* Return a directory entry for a given combination of device and inode
   numbers, or zero if none found.  */
static struct directory *
find_directory_meta (dev_t dev, ino_t ino)
{
  if (! directory_meta_table)
    return 0;
  else
    {
      struct directory *dir = make_directory ("", NULL);
      struct directory *ret;
      dir->device_number = dev;
      dir->inode_number = ino;
      ret = hash_lookup (directory_meta_table, dir);
      free_directory (dir);
      return ret;
    }
}
示例#3
0
文件: incremen.c 项目: Distrotech/tar
void
clear_directory_table (void)
{
  struct directory *dp;

  if (directory_table)
    hash_clear (directory_table);
  if (directory_meta_table)
    hash_clear (directory_meta_table);
  for (dp = dirhead; dp; )
    {
      struct directory *next = dp->next;
      free_directory (dp);
      dp = next;
    }
  dirhead = dirtail = NULL;
}