X-Git-Url: https://wimlib.net/git/?a=blobdiff_plain;f=src%2Fdentry.h;h=d30cb15985632af4746431375f6f79e0a9a69516;hb=213d64619675a59db71fed619bf47c1870b0e2e2;hp=a68f07530930f321999f015b7c572a5c6a3cad1f;hpb=4f54dd3f9aa8f5c30d0ae013da0e8ab7a67816e5;p=wimlib diff --git a/src/dentry.h b/src/dentry.h index a68f0753..d30cb159 100644 --- a/src/dentry.h +++ b/src/dentry.h @@ -8,6 +8,10 @@ #include "rbtree.h" #include +#ifdef WITH_FUSE +#include +#endif + struct stat; struct lookup_table; struct WIMStruct; @@ -161,13 +165,7 @@ struct dentry { /* Byte 48 */ - union { - struct list_head tmp_list; - struct { - void *tmp_ptr_1; - void *tmp_ptr_2; - }; - }; + struct list_head tmp_list; /* Byte 64 */ @@ -208,6 +206,8 @@ struct dentry { * WIMStructs */ u32 refcnt; + u32 full_path_utf8_len; + /* Pointer to the UTF-16 short filename (malloc()ed buffer) */ char *short_name; @@ -216,7 +216,6 @@ struct dentry { /* Full path (UTF-8) to this dentry (malloc()ed buffer). */ char *full_path_utf8; - u32 full_path_utf8_len; }; #define rbnode_dentry(node) container_of(node, struct dentry, rb_node) @@ -300,6 +299,11 @@ struct inode { /* Next alternate data stream ID to be assigned */ u32 next_stream_id; + + /* This mutex protects the inode's file descriptors table during + * read-only mounts. Read-write mounts are still restricted to 1 + * thread. */ + pthread_mutex_t i_mutex; #endif }; @@ -374,9 +378,6 @@ extern void unlink_dentry(struct dentry *dentry); extern bool dentry_add_child(struct dentry * restrict parent, struct dentry * restrict child); -// XXX -#define link_dentry(child, parent) dentry_add_child(parent, child) - extern int verify_dentry(struct dentry *dentry, void *wim);