Lines Matching refs:rsv
203 struct ext2_reserve_window_node *rsv, *prev;
213 rsv = rb_entry(n, struct ext2_reserve_window_node, rsv_node);
217 rsv, rsv->rsv_start, rsv->rsv_end);
218 if (rsv->rsv_start && rsv->rsv_start >= rsv->rsv_end) {
220 rsv);
223 if (prev && prev->rsv_end >= rsv->rsv_start) {
225 rsv);
236 prev = rsv;
249 * @rsv: inode's reservation window
264 goal_in_my_reservation(struct ext2_reserve_window *rsv, ext2_grpblk_t grp_goal,
272 if ((rsv->_rsv_start > group_last_block) ||
273 (rsv->_rsv_end < group_first_block))
275 if ((grp_goal >= 0) && ((grp_goal + group_first_block < rsv->_rsv_start)
276 || (grp_goal + group_first_block > rsv->_rsv_end)))
294 struct ext2_reserve_window_node *rsv;
300 rsv = rb_entry(n, struct ext2_reserve_window_node, rsv_node);
302 if (goal < rsv->rsv_start)
304 else if (goal > rsv->rsv_end)
307 return rsv;
315 if (rsv->rsv_start > goal) {
316 n = rb_prev(&rsv->rsv_node);
317 rsv = rb_entry(n, struct ext2_reserve_window_node, rsv_node);
319 return rsv;
325 * @rsv: reservation window to add
330 struct ext2_reserve_window_node *rsv)
333 struct rb_node *node = &rsv->rsv_node;
334 ext2_fsblk_t start = rsv->rsv_start;
362 * @rsv: reservation window to remove
369 struct ext2_reserve_window_node *rsv)
371 rsv->rsv_start = EXT2_RESERVE_WINDOW_NOT_ALLOCATED;
372 rsv->rsv_end = EXT2_RESERVE_WINDOW_NOT_ALLOCATED;
373 rsv->rsv_alloc_hit = 0;
374 rb_erase(&rsv->rsv_node, &EXT2_SB(sb)->s_rsv_window_root);
379 * @rsv: given reservation window to check
383 static inline int rsv_is_empty(struct ext2_reserve_window *rsv)
386 return (rsv->_rsv_end == EXT2_RESERVE_WINDOW_NOT_ALLOCATED);
418 struct ext2_reserve_window_node *rsv = &block_i->rsv_window_node;
420 rsv->rsv_start = EXT2_RESERVE_WINDOW_NOT_ALLOCATED;
421 rsv->rsv_end = EXT2_RESERVE_WINDOW_NOT_ALLOCATED;
429 rsv->rsv_goal_size = 0;
431 rsv->rsv_goal_size = EXT2_DEFAULT_RESERVE_BLOCKS;
432 rsv->rsv_alloc_hit = 0;
455 struct ext2_reserve_window_node *rsv;
461 rsv = &block_i->rsv_window_node;
462 if (!rsv_is_empty(&rsv->rsv_window)) {
464 if (!rsv_is_empty(&rsv->rsv_window))
465 rsv_window_remove(inode->i_sb, rsv);
759 struct ext2_reserve_window_node *rsv, *prev;
766 rsv = search_head;
767 if (!rsv)
771 if (cur <= rsv->rsv_end)
772 cur = rsv->rsv_end + 1;
786 prev = rsv;
787 next = rb_next(&rsv->rsv_node);
788 rsv = rb_entry(next,struct ext2_reserve_window_node,rsv_node);
797 if (cur + size <= rsv->rsv_start) {