/** state of this extent */
enum osc_extent_state oe_state;
/** flags for this extent. */
- unsigned int oe_intree:1,
/** 0 is write, 1 is read */
- oe_rw:1,
+ unsigned int oe_rw:1,
/** sync extent, queued by osc_queue_sync_pages() */
oe_sync:1,
/** set if this extent has partial, sync pages.
{
char *buf = flags;
*buf++ = ext->oe_rw ? 'r' : 'w';
- if (ext->oe_intree)
+ if (!RB_EMPTY_NODE(&ext->oe_node))
*buf++ = 'i';
if (ext->oe_sync)
*buf++ = 'S';
if (ext == NULL)
return NULL;
- LASSERT(ext->oe_intree);
+ LASSERT(!RB_EMPTY_NODE(&ext->oe_node));
return rb_extent(rb_next(&ext->oe_node));
}
if (ext == NULL)
return NULL;
- LASSERT(ext->oe_intree);
+ LASSERT(!RB_EMPTY_NODE(&ext->oe_node));
return rb_extent(rb_prev(&ext->oe_node));
}
LASSERT(list_empty(&ext->oe_link));
LASSERT(atomic_read(&ext->oe_users) == 0);
LASSERT(ext->oe_state == OES_INV);
- LASSERT(!ext->oe_intree);
+ LASSERT(RB_EMPTY_NODE(&ext->oe_node));
if (ext->oe_dlmlock != NULL) {
lu_ref_del(&ext->oe_dlmlock->l_reference,
struct rb_node *parent = NULL;
struct osc_extent *tmp;
- LASSERT(ext->oe_intree == 0);
+ LASSERT(RB_EMPTY_NODE(&ext->oe_node));
LASSERT(ext->oe_obj == obj);
assert_osc_object_is_locked(obj);
while (*n != NULL) {
rb_link_node(&ext->oe_node, parent, n);
rb_insert_color(&ext->oe_node, &obj->oo_root);
osc_extent_get(ext);
- ext->oe_intree = 1;
}
/* caller must have held object lock. */
{
struct osc_object *obj = ext->oe_obj;
assert_osc_object_is_locked(obj);
- if (ext->oe_intree) {
+ if (!RB_EMPTY_NODE(&ext->oe_node)) {
rb_erase(&ext->oe_node, &obj->oo_root);
- ext->oe_intree = 0;
+ RB_CLEAR_NODE(&ext->oe_node);
/* rbtree held a refcount */
osc_extent_put_trust(ext);
}