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.
83 void btrfs_set_buffer_lockdep_class(u64 objectid, struct extent_buffer *eb, int level)
94 lockdep_set_class_and_name(&eb->lock, &ks->keys[level], ks->names[level]);
97 void btrfs_maybe_reset_lockdep_class(struct btrfs_root *root, struct extent_buffer *eb)
101 eb, btrfs_header_level(eb));
107 static void btrfs_set_eb_lock_owner(struct extent_buffer *eb, pid_t owner)
109 eb->lock_owner = owner;
112 static void btrfs_set_eb_lock_owner(struct extent_buffer *eb, pid_t owner) { }
133 * @eb: the eb to be locked
139 void __btrfs_tree_read_lock(struct extent_buffer *eb, enum btrfs_lock_nesting nest)
146 down_read_nested(&eb->lock, nest);
147 trace_btrfs_tree_read_lock(eb, start_ns);
150 void btrfs_tree_read_lock(struct extent_buffer *eb)
152 __btrfs_tree_read_lock(eb, BTRFS_NESTING_NORMAL);
160 int btrfs_try_tree_read_lock(struct extent_buffer *eb)
162 if (down_read_trylock(&eb->lock)) {
163 trace_btrfs_try_tree_read_lock(eb);
174 int btrfs_try_tree_write_lock(struct extent_buffer *eb)
176 if (down_write_trylock(&eb->lock)) {
177 btrfs_set_eb_lock_owner(eb, current->pid);
178 trace_btrfs_try_tree_write_lock(eb);
187 void btrfs_tree_read_unlock(struct extent_buffer *eb)
189 trace_btrfs_tree_read_unlock(eb);
190 up_read(&eb->lock);
194 * Lock eb for write.
196 * @eb: the eb to lock
199 * Returns with the eb->lock write locked.
201 void __btrfs_tree_lock(struct extent_buffer *eb, enum btrfs_lock_nesting nest)
202 __acquires(&eb->lock)
209 down_write_nested(&eb->lock, nest);
210 btrfs_set_eb_lock_owner(eb, current->pid);
211 trace_btrfs_tree_lock(eb, start_ns);
214 void btrfs_tree_lock(struct extent_buffer *eb)
216 __btrfs_tree_lock(eb, BTRFS_NESTING_NORMAL);
222 void btrfs_tree_unlock(struct extent_buffer *eb)
224 trace_btrfs_tree_unlock(eb);
225 btrfs_set_eb_lock_owner(eb, 0);
226 up_write(&eb->lock);
263 struct extent_buffer *eb;
266 eb = btrfs_root_node(root);
268 btrfs_maybe_reset_lockdep_class(root, eb);
269 btrfs_tree_lock(eb);
270 if (eb == root->node)
272 btrfs_tree_unlock(eb);
273 free_extent_buffer(eb);
275 return eb;
286 struct extent_buffer *eb;
289 eb = btrfs_root_node(root);
291 btrfs_maybe_reset_lockdep_class(root, eb);
292 btrfs_tree_read_lock(eb);
293 if (eb == root->node)
295 btrfs_tree_read_unlock(eb);
296 free_extent_buffer(eb);
298 return eb;
310 struct extent_buffer *eb;
313 eb = btrfs_root_node(root);
314 if (!btrfs_try_tree_read_lock(eb)) {
315 free_extent_buffer(eb);
318 if (eb == root->node)
320 btrfs_tree_read_unlock(eb);
321 free_extent_buffer(eb);
323 return eb;