Rev 2666 | Rev 2680 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2666 | Rev 2679 | ||
---|---|---|---|
Line 132... | Line 132... | ||
132 | */ |
132 | */ |
133 | typedef struct { |
133 | typedef struct { |
134 | VFS_TRIPLET; /**< Identity of the node. */ |
134 | VFS_TRIPLET; /**< Identity of the node. */ |
135 | unsigned refcnt; /**< Usage counter. */ |
135 | unsigned refcnt; /**< Usage counter. */ |
136 | link_t nh_link; /**< Node hash-table link. */ |
136 | link_t nh_link; /**< Node hash-table link. */ |
- | 137 | ||
- | 138 | /** Holding this futex prevents modifications of the node's contents. */ |
|
- | 139 | atomic_t contents_futex; |
|
137 | } vfs_node_t; |
140 | } vfs_node_t; |
138 | 141 | ||
139 | /** |
142 | /** |
140 | * Instances of this type represent an open file. If the file is opened by more |
143 | * Instances of this type represent an open file. If the file is opened by more |
141 | * than one task, there will be a separate structure allocated for each task. |
144 | * than one task, there will be a separate structure allocated for each task. |
Line 167... | Line 170... | ||
167 | 170 | ||
168 | extern atomic_t plb_futex; /**< Futex protecting plb and plb_head. */ |
171 | extern atomic_t plb_futex; /**< Futex protecting plb and plb_head. */ |
169 | extern uint8_t *plb; /**< Path Lookup Buffer */ |
172 | extern uint8_t *plb; /**< Path Lookup Buffer */ |
170 | extern link_t plb_head; /**< List of active PLB entries. */ |
173 | extern link_t plb_head; /**< List of active PLB entries. */ |
171 | 174 | ||
172 | extern atomic_t unlink_futex; /**< VFS_{CREATE|OPEN|UNLINK} serialization. */ |
175 | /** Holding this futex prevents extern changes in file system namespace. */ |
- | 176 | atomic_t namespace_futex; |
|
173 | 177 | ||
174 | extern int vfs_grab_phone(int); |
178 | extern int vfs_grab_phone(int); |
175 | extern void vfs_release_phone(int); |
179 | extern void vfs_release_phone(int); |
176 | 180 | ||
177 | extern int fs_name_to_handle(char *, bool); |
181 | extern int fs_name_to_handle(char *, bool); |