Lines Matching defs:eb

19  * eb, the lockdep key is determined by the btrfs_root it belongs to and
20 * the level the eb occupies in the tree.
82 void btrfs_set_buffer_lockdep_class(u64 objectid, struct extent_buffer *eb, int level)
93 lockdep_set_class_and_name(&eb->lock, &ks->keys[level], ks->names[level]);
96 void btrfs_maybe_reset_lockdep_class(struct btrfs_root *root, struct extent_buffer *eb)
100 eb, btrfs_header_level(eb));
123 * @eb: the eb to be locked
129 void __btrfs_tree_read_lock(struct extent_buffer *eb, enum btrfs_lock_nesting nest)
136 down_read_nested(&eb->lock, nest);
137 trace_btrfs_tree_read_lock(eb, start_ns);
140 void btrfs_tree_read_lock(struct extent_buffer *eb)
142 __btrfs_tree_read_lock(eb, BTRFS_NESTING_NORMAL);
150 int btrfs_try_tree_read_lock(struct extent_buffer *eb)
152 if (down_read_trylock(&eb->lock)) {
153 trace_btrfs_try_tree_read_lock(eb);
164 int btrfs_try_tree_write_lock(struct extent_buffer *eb)
166 if (down_write_trylock(&eb->lock)) {
167 eb->lock_owner = current->pid;
168 trace_btrfs_try_tree_write_lock(eb);
177 void btrfs_tree_read_unlock(struct extent_buffer *eb)
179 trace_btrfs_tree_read_unlock(eb);
180 up_read(&eb->lock);
184 * __btrfs_tree_lock - lock eb for write
185 * @eb: the eb to lock
188 * Returns with the eb->lock write locked.
190 void __btrfs_tree_lock(struct extent_buffer *eb, enum btrfs_lock_nesting nest)
191 __acquires(&eb->lock)
198 down_write_nested(&eb->lock, nest);
199 eb->lock_owner = current->pid;
200 trace_btrfs_tree_lock(eb, start_ns);
203 void btrfs_tree_lock(struct extent_buffer *eb)
205 __btrfs_tree_lock(eb, BTRFS_NESTING_NORMAL);
211 void btrfs_tree_unlock(struct extent_buffer *eb)
213 trace_btrfs_tree_unlock(eb);
214 eb->lock_owner = 0;
215 up_write(&eb->lock);
252 struct extent_buffer *eb;
255 eb = btrfs_root_node(root);
257 btrfs_maybe_reset_lockdep_class(root, eb);
258 btrfs_tree_lock(eb);
259 if (eb == root->node)
261 btrfs_tree_unlock(eb);
262 free_extent_buffer(eb);
264 return eb;
275 struct extent_buffer *eb;
278 eb = btrfs_root_node(root);
280 btrfs_maybe_reset_lockdep_class(root, eb);
281 btrfs_tree_read_lock(eb);
282 if (eb == root->node)
284 btrfs_tree_read_unlock(eb);
285 free_extent_buffer(eb);
287 return eb;
299 struct extent_buffer *eb;
302 eb = btrfs_root_node(root);
303 if (!btrfs_try_tree_read_lock(eb)) {
304 free_extent_buffer(eb);
307 if (eb == root->node)
309 btrfs_tree_read_unlock(eb);
310 free_extent_buffer(eb);
312 return eb;