/* Account for child dentries */
for_dentry_child(child, dentry)
/* Account for child dentries */
for_dentry_child(child, dentry)
/* Read more fields: some into the dentry, and some into the inode. */
inode->i_attributes = le32_to_cpu(disk_dentry->attributes);
inode->i_security_id = le32_to_cpu(disk_dentry->security_id);
/* Read more fields: some into the dentry, and some into the inode. */
inode->i_attributes = le32_to_cpu(disk_dentry->attributes);
inode->i_security_id = le32_to_cpu(disk_dentry->security_id);
inode->i_creation_time = le64_to_cpu(disk_dentry->creation_time);
inode->i_last_access_time = le64_to_cpu(disk_dentry->last_access_time);
inode->i_last_write_time = le64_to_cpu(disk_dentry->last_write_time);
inode->i_creation_time = le64_to_cpu(disk_dentry->creation_time);
inode->i_last_access_time = le64_to_cpu(disk_dentry->last_access_time);
inode->i_last_write_time = le64_to_cpu(disk_dentry->last_write_time);
read_dentry_tree_recursive(const u8 * restrict buf, size_t buf_len,
struct wim_dentry * restrict dir)
{
read_dentry_tree_recursive(const u8 * restrict buf, size_t buf_len,
struct wim_dentry * restrict dir)
{
/* Check for cyclic directory structure, which would cause infinite
* recursion if not handled. */
for (struct wim_dentry *d = dir->d_parent;
!dentry_is_root(d); d = d->d_parent)
{
/* Check for cyclic directory structure, which would cause infinite
* recursion if not handled. */
for (struct wim_dentry *d = dir->d_parent;
!dentry_is_root(d); d = d->d_parent)
{
ERROR("Cyclic directory structure detected: children "
"of \"%"TS"\" coincide with children of \"%"TS"\"",
dentry_full_path(dir), dentry_full_path(d));
ERROR("Cyclic directory structure detected: children "
"of \"%"TS"\" coincide with children of \"%"TS"\"",
dentry_full_path(dir), dentry_full_path(d));
/* If this child is a directory that itself has children, call
* this procedure recursively. */
/* If this child is a directory that itself has children, call
* this procedure recursively. */
if (likely(dentry_is_directory(child))) {
ret = read_dentry_tree_recursive(buf,
buf_len,
if (likely(dentry_is_directory(child))) {
ret = read_dentry_tree_recursive(buf,
buf_len,
ret = read_dentry_tree_recursive(buf, buf_len, root);
if (ret)
goto err_free_dentry_tree;
ret = read_dentry_tree_recursive(buf, buf_len, root);
if (ret)
goto err_free_dentry_tree;
disk_dentry->attributes = cpu_to_le32(inode->i_attributes);
disk_dentry->security_id = cpu_to_le32(inode->i_security_id);
disk_dentry->attributes = cpu_to_le32(inode->i_attributes);
disk_dentry->security_id = cpu_to_le32(inode->i_security_id);