char *stream_name_utf8;
#ifdef WITH_FUSE
+ /* Number to identify an alternate data stream even after it's possibly
+ * been moved or renamed. */
u32 stream_id;
#endif
};
*/
struct dentry {
/* The inode for this dentry */
- struct inode *inode;
+ struct inode *d_inode;
/* The parent of this directory entry. */
struct dentry *parent;
return dentry->is_extracted;
}
+static inline bool dentry_is_first_in_inode(const struct dentry *dentry)
+{
+ return container_of(dentry->d_inode->dentry_list.next,
+ struct dentry,
+ inode_dentry_list) == dentry;
+}
extern u64 dentry_correct_total_length(const struct dentry *dentry);
extern void unlink_dentry(struct dentry *dentry);
extern void link_dentry(struct dentry *dentry, struct dentry *parent);
-extern void calculate_dir_tree_statistics(struct dentry *root,
- struct lookup_table *table,
- u64 *dir_count_ret,
- u64 *file_count_ret,
- u64 *total_bytes_ret,
- u64 *hard_link_bytes_ret);
-
extern int verify_dentry(struct dentry *dentry, void *wim);
extern struct ads_entry *inode_get_ads_entry(struct inode *inode,
const char *stream_name,
u16 *idx_ret);
-extern void inode_free_ads_entries(struct inode *inode);
-
extern struct ads_entry *inode_add_ads(struct inode *dentry,
const char *stream_name);
static inline bool dentry_is_first_sibling(const struct dentry *dentry)
{
- return dentry_is_root(dentry) || dentry->parent->inode->children == dentry;
+ return dentry_is_root(dentry) || dentry->parent->d_inode->children == dentry;
}
static inline bool dentry_is_only_child(const struct dentry *dentry)
static inline bool dentry_is_directory(const struct dentry *dentry)
{
- return inode_is_directory(dentry->inode);
+ return inode_is_directory(dentry->d_inode);
}
/* For our purposes, we consider "real" symlinks and "junction points" to both
static inline bool dentry_is_symlink(const struct dentry *dentry)
{
- return inode_is_symlink(dentry->inode);
+ return inode_is_symlink(dentry->d_inode);
}
static inline bool inode_is_regular_file(const struct inode *inode)
static inline bool dentry_is_regular_file(const struct dentry *dentry)
{
- return inode_is_regular_file(dentry->inode);
+ return inode_is_regular_file(dentry->d_inode);
}
static inline bool dentry_is_empty_directory(const struct dentry *dentry)
{
- return dentry_is_directory(dentry) && dentry->inode->children == NULL;
+ return dentry_is_directory(dentry) && dentry->d_inode->children == NULL;
}
#endif