Lines Matching refs:context

57 xfs_attr_shortform_list(xfs_attr_list_context_t *context)  in xfs_attr_shortform_list()  argument
66 ASSERT(context != NULL); in xfs_attr_shortform_list()
67 dp = context->dp; in xfs_attr_shortform_list()
74 cursor = context->cursor; in xfs_attr_shortform_list()
77 trace_xfs_attr_list_sf(context); in xfs_attr_shortform_list()
88 if (context->bufsize == 0 || in xfs_attr_shortform_list()
90 (dp->i_afp->if_bytes + sf->hdr.count * 16) < context->bufsize)) { in xfs_attr_shortform_list()
92 context->put_listent(context, in xfs_attr_shortform_list()
101 if (context->seen_enough) in xfs_attr_shortform_list()
105 trace_xfs_attr_list_sf_all(context); in xfs_attr_shortform_list()
110 if (context->bufsize == 0) in xfs_attr_shortform_list()
130 context->dp->i_mount, sfe, in xfs_attr_shortform_list()
182 context->put_listent(context, in xfs_attr_shortform_list()
187 if (context->seen_enough) in xfs_attr_shortform_list()
202 struct xfs_attr_list_context *context, in xfs_attr_node_list_lookup() argument
209 struct xfs_inode *dp = context->dp; in xfs_attr_node_list_lookup()
211 struct xfs_trans *tp = context->tp; in xfs_attr_node_list_lookup()
255 trace_xfs_attr_list_node_descend(context, in xfs_attr_node_list_lookup()
283 struct xfs_attr_list_context *context) in xfs_attr_node_list() argument
290 struct xfs_inode *dp = context->dp; in xfs_attr_node_list()
294 trace_xfs_attr_node_list(context); in xfs_attr_node_list()
296 cursor = context->cursor; in xfs_attr_node_list()
306 error = xfs_da3_node_read(context->tp, dp, cursor->blkno, -1, in xfs_attr_node_list()
317 trace_xfs_attr_list_wrong_blk(context); in xfs_attr_node_list()
318 xfs_trans_brelse(context->tp, bp); in xfs_attr_node_list()
329 trace_xfs_attr_list_wrong_blk(context); in xfs_attr_node_list()
330 xfs_trans_brelse(context->tp, bp); in xfs_attr_node_list()
334 trace_xfs_attr_list_wrong_blk(context); in xfs_attr_node_list()
335 xfs_trans_brelse(context->tp, bp); in xfs_attr_node_list()
340 trace_xfs_attr_list_wrong_blk(context); in xfs_attr_node_list()
341 xfs_trans_brelse(context->tp, bp); in xfs_attr_node_list()
353 error = xfs_attr_node_list_lookup(context, cursor, &bp); in xfs_attr_node_list()
366 xfs_attr3_leaf_list_int(bp, context); in xfs_attr_node_list()
368 if (context->seen_enough || leafhdr.forw == 0) in xfs_attr_node_list()
371 xfs_trans_brelse(context->tp, bp); in xfs_attr_node_list()
372 error = xfs_attr3_leaf_read(context->tp, dp, cursor->blkno, -1, &bp); in xfs_attr_node_list()
376 xfs_trans_brelse(context->tp, bp); in xfs_attr_node_list()
386 struct xfs_attr_list_context *context) in xfs_attr3_leaf_list_int() argument
394 struct xfs_mount *mp = context->dp->i_mount; in xfs_attr3_leaf_list_int()
396 trace_xfs_attr_list_leaf(context); in xfs_attr3_leaf_list_int()
402 cursor = context->cursor; in xfs_attr3_leaf_list_int()
408 if (context->resynch) { in xfs_attr3_leaf_list_int()
412 if (cursor->offset == context->dupcnt) { in xfs_attr3_leaf_list_int()
413 context->dupcnt = 0; in xfs_attr3_leaf_list_int()
416 context->dupcnt++; in xfs_attr3_leaf_list_int()
419 context->dupcnt = 0; in xfs_attr3_leaf_list_int()
424 trace_xfs_attr_list_notfound(context); in xfs_attr3_leaf_list_int()
431 context->resynch = 0; in xfs_attr3_leaf_list_int()
446 !(context->flags & ATTR_INCOMPLETE)) in xfs_attr3_leaf_list_int()
465 context->put_listent(context, entry->flags, in xfs_attr3_leaf_list_int()
467 if (context->seen_enough) in xfs_attr3_leaf_list_int()
471 trace_xfs_attr_list_leaf_end(context); in xfs_attr3_leaf_list_int()
479 xfs_attr_leaf_list(xfs_attr_list_context_t *context) in xfs_attr_leaf_list() argument
484 trace_xfs_attr_leaf_list(context); in xfs_attr_leaf_list()
486 context->cursor->blkno = 0; in xfs_attr_leaf_list()
487 error = xfs_attr3_leaf_read(context->tp, context->dp, 0, -1, &bp); in xfs_attr_leaf_list()
491 xfs_attr3_leaf_list_int(bp, context); in xfs_attr_leaf_list()
492 xfs_trans_brelse(context->tp, bp); in xfs_attr_leaf_list()
498 struct xfs_attr_list_context *context) in xfs_attr_list_int_ilocked() argument
500 struct xfs_inode *dp = context->dp; in xfs_attr_list_int_ilocked()
510 return xfs_attr_shortform_list(context); in xfs_attr_list_int_ilocked()
512 return xfs_attr_leaf_list(context); in xfs_attr_list_int_ilocked()
513 return xfs_attr_node_list(context); in xfs_attr_list_int_ilocked()
518 xfs_attr_list_context_t *context) in xfs_attr_list_int() argument
521 xfs_inode_t *dp = context->dp; in xfs_attr_list_int()
530 error = xfs_attr_list_int_ilocked(context); in xfs_attr_list_int()
548 xfs_attr_list_context_t *context, in xfs_attr_put_listent() argument
554 struct attrlist *alist = (struct attrlist *)context->alist; in xfs_attr_put_listent()
558 ASSERT(!(context->flags & ATTR_KERNOVAL)); in xfs_attr_put_listent()
559 ASSERT(context->count >= 0); in xfs_attr_put_listent()
560 ASSERT(context->count < (ATTR_MAX_VALUELEN/8)); in xfs_attr_put_listent()
561 ASSERT(context->firstu >= sizeof(*alist)); in xfs_attr_put_listent()
562 ASSERT(context->firstu <= context->bufsize); in xfs_attr_put_listent()
567 if (((context->flags & ATTR_SECURE) == 0) != in xfs_attr_put_listent()
570 if (((context->flags & ATTR_ROOT) == 0) != in xfs_attr_put_listent()
575 context->count * sizeof(alist->al_offset[0]); in xfs_attr_put_listent()
576 context->firstu -= ATTR_ENTSIZE(namelen); in xfs_attr_put_listent()
577 if (context->firstu < arraytop) { in xfs_attr_put_listent()
578 trace_xfs_attr_list_full(context); in xfs_attr_put_listent()
580 context->seen_enough = 1; in xfs_attr_put_listent()
584 aep = (attrlist_ent_t *)&context->alist[context->firstu]; in xfs_attr_put_listent()
588 alist->al_offset[context->count++] = context->firstu; in xfs_attr_put_listent()
589 alist->al_count = context->count; in xfs_attr_put_listent()
590 trace_xfs_attr_list_add(context); in xfs_attr_put_listent()
609 xfs_attr_list_context_t context; in xfs_attr_list() local
637 memset(&context, 0, sizeof(context)); in xfs_attr_list()
638 context.dp = dp; in xfs_attr_list()
639 context.cursor = cursor; in xfs_attr_list()
640 context.resynch = 1; in xfs_attr_list()
641 context.flags = flags; in xfs_attr_list()
642 context.alist = buffer; in xfs_attr_list()
643 context.bufsize = (bufsize & ~(sizeof(int)-1)); /* align */ in xfs_attr_list()
644 context.firstu = context.bufsize; in xfs_attr_list()
645 context.put_listent = xfs_attr_put_listent; in xfs_attr_list()
647 alist = (struct attrlist *)context.alist; in xfs_attr_list()
650 alist->al_offset[0] = context.bufsize; in xfs_attr_list()
652 error = xfs_attr_list_int(&context); in xfs_attr_list()