struct dir_info /* Each directory has one of these */
{
- char *name;
struct dir_info *parent; /* Parent directory or null
for our top directory */
unsigned int number_of_entries;
if (!parent)
return cat_paths(fsinfo.mount_point, name);
- parent_path = dir_path(parent->parent, parent->name);
+ parent_path = dir_path(parent->parent, parent->entry->name);
path = cat_paths(parent_path, name);
free(parent_path);
return path;
entry->dir = dir;
dir->entry = entry;
- dir->name = dup_string(name);
dir->parent = parent;
} else if (entry->type == 's') {
struct symlink_info *symlink = target;
}
/* Remove directory form the file-system */
- path = dir_path(dir->parent, dir->name);
+ path = dir_path(dir->parent, dir->entry->name);
if (rmdir(path) != 0) {
pcv("cannot remove directory entry %s", path);
free(path);
/* Remove entry from parent directory */
remove_dir_entry(dir->entry);
free(path);
- free(dir->name);
free(dir);
return 0;
}
full = 1;
} else
pcv("cannot create hardlink %s in directory %s to file %s",
- path, parent->name, target);
+ path, parent->entry->name, target);
free(target);
free(path);
return ret;
entry = file->links;
while (entry) {
normsg(" Name: %s", entry->name);
- normsg(" Directory: %s", entry->parent->name);
+ normsg(" Directory: %s", entry->parent->entry->name);
entry = entry->next_link;
}
normsg(" Length: %llu", (unsigned long long)file->length);
qsort(entry_array, n, sz, sort_comp);
/* Go through directory on file system checking entries match */
- path = dir_path(dir->parent, dir->name);
+ path = dir_path(dir->parent, dir->entry->name);
d = opendir(path);
CHECK(d != NULL);
for (;;) {
full = 1;
else if (errno != ENAMETOOLONG) {
pcv("cannot create symlink %s in directory %s to file %s",
- path, dir->name, target);
+ path, dir->entry->name, target);
ret = -1;
}
free(target);
}
top_dir = zalloc(sizeof(struct dir_info));
- top_dir->name = dup_string(fsinfo.test_dir);
+ top_dir->entry = zalloc(sizeof(struct dir_entry_info));
+ top_dir->entry->name = dup_string(fsinfo.test_dir);
ret = create_test_data();
if (ret)