Lines Matching refs:es1
265 struct extent_status *es1 = NULL;
275 es1 = READ_ONCE(tree->cache_es);
276 if (es1 && in_range(lblk, es1->es_lblk, es1->es_len)) {
278 lblk, es1->es_lblk, es1->es_len,
279 ext4_es_pblock(es1), ext4_es_status(es1));
283 es1 = __es_tree_search(&tree->root, lblk);
286 if (es1 && !matching_fn(es1)) {
287 while ((node = rb_next(&es1->rb_node)) != NULL) {
288 es1 = rb_entry(node, struct extent_status, rb_node);
289 if (es1->es_lblk > end) {
290 es1 = NULL;
293 if (matching_fn(es1))
298 if (es1 && matching_fn(es1)) {
299 WRITE_ONCE(tree->cache_es, es1);
300 es->es_lblk = es1->es_lblk;
301 es->es_len = es1->es_len;
302 es->es_pblk = es1->es_pblk;
538 static int ext4_es_can_be_merged(struct extent_status *es1,
541 if (ext4_es_type(es1) != ext4_es_type(es2))
544 if (((__u64) es1->es_len) + es2->es_len > EXT_MAX_BLOCKS) {
546 "The sum of lengths of es1 (%d) and es2 (%d) "
548 es1->es_len, es2->es_len, EXT_MAX_BLOCKS);
553 if (((__u64) es1->es_lblk) + es1->es_len != es2->es_lblk)
556 if ((ext4_es_is_written(es1) || ext4_es_is_unwritten(es1)) &&
557 (ext4_es_pblock(es1) + es1->es_len == ext4_es_pblock(es2)))
560 if (ext4_es_is_hole(es1))
564 if (ext4_es_is_delayed(es1) && !ext4_es_is_unwritten(es1))
574 struct extent_status *es1;
581 es1 = rb_entry(node, struct extent_status, rb_node);
582 if (ext4_es_can_be_merged(es1, es)) {
583 es1->es_len += es->es_len;
585 ext4_es_set_referenced(es1);
588 es = es1;
598 struct extent_status *es1;
605 es1 = rb_entry(node, struct extent_status, rb_node);
606 if (ext4_es_can_be_merged(es, es1)) {
607 es->es_len += es1->es_len;
608 if (ext4_es_is_referenced(es1))
611 ext4_es_free_extent(inode, es1);
862 struct extent_status *es1 = NULL;
898 if (err1 && !es1)
899 es1 = __es_alloc_extent(true);
906 err1 = __es_remove_extent(inode, lblk, end, NULL, es1);
910 if (es1) {
911 if (!es1->es_len)
912 __es_free_extent(es1);
913 es1 = NULL;
993 struct extent_status *es1 = NULL;
1008 es1 = READ_ONCE(tree->cache_es);
1009 if (es1 && in_range(lblk, es1->es_lblk, es1->es_len)) {
1011 lblk, es1->es_lblk, es1->es_len);
1018 es1 = rb_entry(node, struct extent_status, rb_node);
1019 if (lblk < es1->es_lblk)
1021 else if (lblk > ext4_es_end(es1))
1032 BUG_ON(!es1);
1033 es->es_lblk = es1->es_lblk;
1034 es->es_len = es1->es_len;
1035 es->es_pblk = es1->es_pblk;
1036 if (!ext4_es_is_referenced(es1))
1037 ext4_es_set_referenced(es1);
1040 node = rb_next(&es1->rb_node);
1042 es1 = rb_entry(node, struct extent_status,
1044 *next_lblk = es1->es_lblk;
2076 struct extent_status *es1 = NULL;
2094 if (err1 && !es1)
2095 es1 = __es_alloc_extent(true);
2102 err1 = __es_remove_extent(inode, lblk, lblk, NULL, es1);
2106 if (es1) {
2107 if (!es1->es_len)
2108 __es_free_extent(es1);
2109 es1 = NULL;