Lines Matching refs:context
69 xfs_attr_shortform_list(xfs_attr_list_context_t *context) in xfs_attr_shortform_list() argument
79 ASSERT(context != NULL); in xfs_attr_shortform_list()
80 dp = context->dp; in xfs_attr_shortform_list()
87 cursor = context->cursor; in xfs_attr_shortform_list()
90 trace_xfs_attr_list_sf(context); in xfs_attr_shortform_list()
101 if (context->bufsize == 0 || in xfs_attr_shortform_list()
103 (dp->i_afp->if_bytes + sf->hdr.count * 16) < context->bufsize)) { in xfs_attr_shortform_list()
105 error = context->put_listent(context, in xfs_attr_shortform_list()
117 if (context->seen_enough) in xfs_attr_shortform_list()
121 trace_xfs_attr_list_sf_all(context); in xfs_attr_shortform_list()
126 if (context->bufsize == 0) in xfs_attr_shortform_list()
146 context->dp->i_mount, sfe); in xfs_attr_shortform_list()
197 error = context->put_listent(context, in xfs_attr_shortform_list()
207 if (context->seen_enough) in xfs_attr_shortform_list()
217 xfs_attr_node_list(xfs_attr_list_context_t *context) in xfs_attr_node_list() argument
227 struct xfs_inode *dp = context->dp; in xfs_attr_node_list()
230 trace_xfs_attr_node_list(context); in xfs_attr_node_list()
232 cursor = context->cursor; in xfs_attr_node_list()
253 trace_xfs_attr_list_wrong_blk(context); in xfs_attr_node_list()
265 trace_xfs_attr_list_wrong_blk(context); in xfs_attr_node_list()
270 trace_xfs_attr_list_wrong_blk(context); in xfs_attr_node_list()
276 trace_xfs_attr_list_wrong_blk(context); in xfs_attr_node_list()
307 context->dp->i_mount, in xfs_attr_node_list()
319 trace_xfs_attr_list_node_descend(context, in xfs_attr_node_list()
340 error = xfs_attr3_leaf_list_int(bp, context); in xfs_attr_node_list()
346 if (context->seen_enough || leafhdr.forw == 0) in xfs_attr_node_list()
364 struct xfs_attr_list_context *context) in xfs_attr3_leaf_list_int() argument
373 struct xfs_mount *mp = context->dp->i_mount; in xfs_attr3_leaf_list_int()
375 trace_xfs_attr_list_leaf(context); in xfs_attr3_leaf_list_int()
381 cursor = context->cursor; in xfs_attr3_leaf_list_int()
387 if (context->resynch) { in xfs_attr3_leaf_list_int()
391 if (cursor->offset == context->dupcnt) { in xfs_attr3_leaf_list_int()
392 context->dupcnt = 0; in xfs_attr3_leaf_list_int()
395 context->dupcnt++; in xfs_attr3_leaf_list_int()
398 context->dupcnt = 0; in xfs_attr3_leaf_list_int()
403 trace_xfs_attr_list_notfound(context); in xfs_attr3_leaf_list_int()
410 context->resynch = 0; in xfs_attr3_leaf_list_int()
429 retval = context->put_listent(context, in xfs_attr3_leaf_list_int()
443 if (context->put_value) { in xfs_attr3_leaf_list_int()
447 args.geo = context->dp->i_mount->m_attr_geo; in xfs_attr3_leaf_list_int()
448 args.dp = context->dp; in xfs_attr3_leaf_list_int()
458 retval = context->put_listent(context, in xfs_attr3_leaf_list_int()
466 retval = context->put_listent(context, in xfs_attr3_leaf_list_int()
476 if (context->seen_enough) in xfs_attr3_leaf_list_int()
480 trace_xfs_attr_list_leaf_end(context); in xfs_attr3_leaf_list_int()
488 xfs_attr_leaf_list(xfs_attr_list_context_t *context) in xfs_attr_leaf_list() argument
493 trace_xfs_attr_leaf_list(context); in xfs_attr_leaf_list()
495 context->cursor->blkno = 0; in xfs_attr_leaf_list()
496 error = xfs_attr3_leaf_read(NULL, context->dp, 0, -1, &bp); in xfs_attr_leaf_list()
500 error = xfs_attr3_leaf_list_int(bp, context); in xfs_attr_leaf_list()
507 xfs_attr_list_context_t *context) in xfs_attr_list_int() argument
510 xfs_inode_t *dp = context->dp; in xfs_attr_list_int()
525 error = xfs_attr_shortform_list(context); in xfs_attr_list_int()
527 error = xfs_attr_leaf_list(context); in xfs_attr_list_int()
529 error = xfs_attr_node_list(context); in xfs_attr_list_int()
548 xfs_attr_list_context_t *context, in xfs_attr_put_listent() argument
555 struct attrlist *alist = (struct attrlist *)context->alist; in xfs_attr_put_listent()
559 ASSERT(!(context->flags & ATTR_KERNOVAL)); in xfs_attr_put_listent()
560 ASSERT(context->count >= 0); in xfs_attr_put_listent()
561 ASSERT(context->count < (ATTR_MAX_VALUELEN/8)); in xfs_attr_put_listent()
562 ASSERT(context->firstu >= sizeof(*alist)); in xfs_attr_put_listent()
563 ASSERT(context->firstu <= context->bufsize); in xfs_attr_put_listent()
568 if (((context->flags & ATTR_SECURE) == 0) != in xfs_attr_put_listent()
571 if (((context->flags & ATTR_ROOT) == 0) != in xfs_attr_put_listent()
576 context->count * sizeof(alist->al_offset[0]); in xfs_attr_put_listent()
577 context->firstu -= ATTR_ENTSIZE(namelen); in xfs_attr_put_listent()
578 if (context->firstu < arraytop) { in xfs_attr_put_listent()
579 trace_xfs_attr_list_full(context); in xfs_attr_put_listent()
581 context->seen_enough = 1; in xfs_attr_put_listent()
585 aep = (attrlist_ent_t *)&context->alist[context->firstu]; in xfs_attr_put_listent()
589 alist->al_offset[context->count++] = context->firstu; in xfs_attr_put_listent()
590 alist->al_count = context->count; in xfs_attr_put_listent()
591 trace_xfs_attr_list_add(context); in xfs_attr_put_listent()
610 xfs_attr_list_context_t context; in xfs_attr_list() local
634 memset(&context, 0, sizeof(context)); in xfs_attr_list()
635 context.dp = dp; in xfs_attr_list()
636 context.cursor = cursor; in xfs_attr_list()
637 context.resynch = 1; in xfs_attr_list()
638 context.flags = flags; in xfs_attr_list()
639 context.alist = buffer; in xfs_attr_list()
640 context.bufsize = (bufsize & ~(sizeof(int)-1)); /* align */ in xfs_attr_list()
641 context.firstu = context.bufsize; in xfs_attr_list()
642 context.put_listent = xfs_attr_put_listent; in xfs_attr_list()
644 alist = (struct attrlist *)context.alist; in xfs_attr_list()
647 alist->al_offset[0] = context.bufsize; in xfs_attr_list()
649 error = xfs_attr_list_int(&context); in xfs_attr_list()