Lines Matching full:eb
94 * The address where the eb can be accessed without any cross-page handling.
104 /* >= 0 if eb belongs to a log tree, -1 otherwise */
125 struct extent_buffer *eb; member
126 /* Block group @eb resides in. Only used for zoned mode. */
130 static inline unsigned long offset_in_eb_folio(const struct extent_buffer *eb, in offset_in_eb_folio() argument
133 ASSERT(eb->folio_size); in offset_in_eb_folio()
134 return start & (eb->folio_size - 1); in offset_in_eb_folio()
140 * @eb: target extent buffer
145 static inline size_t get_eb_offset_in_folio(const struct extent_buffer *eb, in get_eb_offset_in_folio() argument
150 * 1.1) One large folio covering the whole eb in get_eb_offset_in_folio()
151 * The eb->start is aligned to folio size, thus adding it in get_eb_offset_in_folio()
154 * The eb->start is aligned to folio (page) size, thus in get_eb_offset_in_folio()
160 * We need to add eb->start to properly access the offset inside in get_eb_offset_in_folio()
161 * that eb. in get_eb_offset_in_folio()
163 return offset_in_folio(eb->folios[0], offset + eb->start); in get_eb_offset_in_folio()
166 static inline unsigned long get_eb_folio_index(const struct extent_buffer *eb, in get_eb_folio_index() argument
171 * 1.1) One large folio covering the whole eb. in get_eb_folio_index()
181 return offset >> eb->folio_shift; in get_eb_folio_index()
276 void free_extent_buffer(struct extent_buffer *eb);
277 void free_extent_buffer_stale(struct extent_buffer *eb);
278 int read_extent_buffer_pages(struct extent_buffer *eb, int mirror_num,
280 int read_extent_buffer_pages_nowait(struct extent_buffer *eb, int mirror_num,
283 static inline void wait_on_extent_buffer_writeback(struct extent_buffer *eb) in wait_on_extent_buffer_writeback() argument
285 wait_on_bit_io(&eb->bflags, EXTENT_BUFFER_WRITEBACK, in wait_on_extent_buffer_writeback()
295 static inline int __pure num_extent_pages(const struct extent_buffer *eb) in num_extent_pages() argument
299 * sectorsize, it's just eb->len >> PAGE_SHIFT. in num_extent_pages()
304 return (eb->len >> PAGE_SHIFT) ?: 1; in num_extent_pages()
308 * This can only be determined at runtime by checking eb::folios[0].
310 * As we can have either one large folio covering the whole eb
316 static inline int __pure num_extent_folios(const struct extent_buffer *eb) in num_extent_folios() argument
318 if (!eb->folios[0]) in num_extent_folios()
320 if (folio_order(eb->folios[0])) in num_extent_folios()
322 return num_extent_pages(eb); in num_extent_folios()
325 static inline bool extent_buffer_uptodate(const struct extent_buffer *eb) in extent_buffer_uptodate() argument
327 return test_bit(EXTENT_BUFFER_UPTODATE, &eb->bflags); in extent_buffer_uptodate()
330 int memcmp_extent_buffer(const struct extent_buffer *eb, const void *ptrv,
332 void read_extent_buffer(const struct extent_buffer *eb, void *dst,
335 int read_extent_buffer_to_user_nofault(const struct extent_buffer *eb,
338 void write_extent_buffer(const struct extent_buffer *eb, const void *src,
342 const struct extent_buffer *eb, const void *chunk_tree_uuid) in write_extent_buffer_chunk_tree_uuid() argument
344 write_extent_buffer(eb, chunk_tree_uuid, in write_extent_buffer_chunk_tree_uuid()
349 static inline void write_extent_buffer_fsid(const struct extent_buffer *eb, in write_extent_buffer_fsid() argument
352 write_extent_buffer(eb, fsid, offsetof(struct btrfs_header, fsid), in write_extent_buffer_fsid()
368 void memzero_extent_buffer(const struct extent_buffer *eb, unsigned long start,
370 bool extent_buffer_test_bit(const struct extent_buffer *eb, unsigned long start,
372 void extent_buffer_bitmap_set(const struct extent_buffer *eb, unsigned long start,
374 void extent_buffer_bitmap_clear(const struct extent_buffer *eb,
377 void set_extent_buffer_dirty(struct extent_buffer *eb);
378 void set_extent_buffer_uptodate(struct extent_buffer *eb);
379 void clear_extent_buffer_uptodate(struct extent_buffer *eb);
409 struct extent_buffer *eb);