Lines Matching defs:file_offset
24 if (entry->file_offset + entry->num_bytes < entry->file_offset)
26 return entry->file_offset + entry->num_bytes;
32 static struct rb_node *tree_insert(struct rb_root *root, u64 file_offset,
43 if (file_offset < entry->file_offset)
45 else if (file_offset >= entry_end(entry))
60 static struct rb_node *__tree_search(struct rb_root *root, u64 file_offset,
74 if (file_offset < entry->file_offset)
76 else if (file_offset >= entry_end(entry))
84 while (prev && file_offset >= entry_end(prev_entry)) {
90 if (file_offset < entry_end(prev_entry))
98 while (prev && file_offset < entry_end(prev_entry)) {
113 static int offset_in_entry(struct btrfs_ordered_extent *entry, u64 file_offset)
115 if (file_offset < entry->file_offset ||
116 entry->file_offset + entry->num_bytes <= file_offset)
121 static int range_overlaps(struct btrfs_ordered_extent *entry, u64 file_offset,
124 if (file_offset + len <= entry->file_offset ||
125 entry->file_offset + entry->num_bytes <= file_offset)
135 u64 file_offset)
145 if (offset_in_entry(entry, file_offset))
148 ret = __tree_search(root, file_offset, &prev);
162 static int __btrfs_add_ordered_extent(struct btrfs_inode *inode, u64 file_offset,
176 ret = btrfs_qgroup_free_data(inode, NULL, file_offset, num_bytes);
185 ret = btrfs_qgroup_release_data(inode, file_offset, num_bytes);
193 entry->file_offset = file_offset;
223 node = tree_insert(&tree->tree, file_offset,
228 file_offset);
255 int btrfs_add_ordered_extent(struct btrfs_inode *inode, u64 file_offset,
259 return __btrfs_add_ordered_extent(inode, file_offset, disk_bytenr,
264 int btrfs_add_ordered_extent_dio(struct btrfs_inode *inode, u64 file_offset,
268 return __btrfs_add_ordered_extent(inode, file_offset, disk_bytenr,
273 int btrfs_add_ordered_extent_compress(struct btrfs_inode *inode, u64 file_offset,
278 return __btrfs_add_ordered_extent(inode, file_offset, disk_bytenr,
308 * file_offset is updated to one byte past the range that is recorded as
313 u64 *file_offset, u64 io_size, int uptodate)
326 node = tree_search(tree, *file_offset);
333 if (!offset_in_entry(entry, *file_offset)) {
338 dec_start = max(*file_offset, entry->file_offset);
339 dec_end = min(*file_offset + io_size,
340 entry->file_offset + entry->num_bytes);
341 *file_offset = dec_end;
383 u64 file_offset, u64 io_size, int uptodate)
397 node = tree_search(tree, file_offset);
405 if (!offset_in_entry(entry, file_offset)) {
654 u64 start = entry->file_offset;
713 if (ordered->file_offset > orig_end) {
717 if (ordered->file_offset + ordered->num_bytes <= start) {
722 end = ordered->file_offset;
739 * find an ordered extent corresponding to file_offset. return NULL if
743 u64 file_offset)
751 node = tree_search(tree, file_offset);
756 if (!offset_in_entry(entry, file_offset))
769 struct btrfs_inode *inode, u64 file_offset, u64 len)
777 node = tree_search(tree, file_offset);
779 node = tree_search(tree, file_offset + len);
786 if (range_overlaps(entry, file_offset, len))
789 if (entry->file_offset >= file_offset + len) {
807 * file_offset of the ordered extents.
834 * lookup and return any extent before 'file_offset'. NULL is returned
838 btrfs_lookup_first_ordered_extent(struct btrfs_inode *inode, u64 file_offset)
846 node = tree_search(tree, file_offset);