if (en) {
*ei = en->ei;
spin_lock(&sbi->extent_lock);
- if (!list_empty(&en->list))
+ if (!list_empty(&en->list)) {
list_move_tail(&en->list, &sbi->extent_list);
- et->cached_en = en;
+ et->cached_en = en;
+ }
spin_unlock(&sbi->extent_lock);
ret = true;
}
return NULL;
__try_update_largest_extent(et, en);
- et->cached_en = en;
spin_lock(&sbi->extent_lock);
- if (!list_empty(&en->list))
+ if (!list_empty(&en->list)) {
list_move_tail(&en->list, &sbi->extent_list);
+ et->cached_en = en;
+ }
spin_unlock(&sbi->extent_lock);
return en;
}
return NULL;
__try_update_largest_extent(et, en);
- et->cached_en = en;
/* update in global extent list */
spin_lock(&sbi->extent_lock);
list_add_tail(&en->list, &sbi->extent_list);
+ et->cached_en = en;
spin_unlock(&sbi->extent_lock);
return en;
}