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()
116 if (context->seen_enough) in xfs_attr_shortform_list()
123 trace_xfs_attr_list_sf_all(context); in xfs_attr_shortform_list()
128 if (context->bufsize == 0) in xfs_attr_shortform_list()
148 context->dp->i_mount, sfe); in xfs_attr_shortform_list()
199 error = context->put_listent(context, in xfs_attr_shortform_list()
209 if (context->seen_enough) in xfs_attr_shortform_list()
219 xfs_attr_node_list(xfs_attr_list_context_t *context) in xfs_attr_node_list() argument
229 struct xfs_inode *dp = context->dp; in xfs_attr_node_list()
232 trace_xfs_attr_node_list(context); in xfs_attr_node_list()
234 cursor = context->cursor; in xfs_attr_node_list()
255 trace_xfs_attr_list_wrong_blk(context); in xfs_attr_node_list()
267 trace_xfs_attr_list_wrong_blk(context); in xfs_attr_node_list()
272 trace_xfs_attr_list_wrong_blk(context); in xfs_attr_node_list()
278 trace_xfs_attr_list_wrong_blk(context); in xfs_attr_node_list()
309 context->dp->i_mount, in xfs_attr_node_list()
321 trace_xfs_attr_list_node_descend(context, in xfs_attr_node_list()
342 error = xfs_attr3_leaf_list_int(bp, context); in xfs_attr_node_list()
348 if (context->seen_enough || leafhdr.forw == 0) in xfs_attr_node_list()
366 struct xfs_attr_list_context *context) in xfs_attr3_leaf_list_int() argument
375 struct xfs_mount *mp = context->dp->i_mount; in xfs_attr3_leaf_list_int()
377 trace_xfs_attr_list_leaf(context); in xfs_attr3_leaf_list_int()
383 cursor = context->cursor; in xfs_attr3_leaf_list_int()
389 if (context->resynch) { in xfs_attr3_leaf_list_int()
393 if (cursor->offset == context->dupcnt) { in xfs_attr3_leaf_list_int()
394 context->dupcnt = 0; in xfs_attr3_leaf_list_int()
397 context->dupcnt++; in xfs_attr3_leaf_list_int()
400 context->dupcnt = 0; in xfs_attr3_leaf_list_int()
405 trace_xfs_attr_list_notfound(context); in xfs_attr3_leaf_list_int()
412 context->resynch = 0; in xfs_attr3_leaf_list_int()
431 retval = context->put_listent(context, in xfs_attr3_leaf_list_int()
445 if (context->put_value) { in xfs_attr3_leaf_list_int()
449 args.geo = context->dp->i_mount->m_attr_geo; in xfs_attr3_leaf_list_int()
450 args.dp = context->dp; in xfs_attr3_leaf_list_int()
460 retval = context->put_listent(context, in xfs_attr3_leaf_list_int()
468 retval = context->put_listent(context, in xfs_attr3_leaf_list_int()
478 if (context->seen_enough) in xfs_attr3_leaf_list_int()
482 trace_xfs_attr_list_leaf_end(context); in xfs_attr3_leaf_list_int()
490 xfs_attr_leaf_list(xfs_attr_list_context_t *context) in xfs_attr_leaf_list() argument
495 trace_xfs_attr_leaf_list(context); in xfs_attr_leaf_list()
497 context->cursor->blkno = 0; in xfs_attr_leaf_list()
498 error = xfs_attr3_leaf_read(NULL, context->dp, 0, -1, &bp); in xfs_attr_leaf_list()
502 error = xfs_attr3_leaf_list_int(bp, context); in xfs_attr_leaf_list()
509 xfs_attr_list_context_t *context) in xfs_attr_list_int() argument
512 xfs_inode_t *dp = context->dp; in xfs_attr_list_int()
527 error = xfs_attr_shortform_list(context); in xfs_attr_list_int()
529 error = xfs_attr_leaf_list(context); in xfs_attr_list_int()
531 error = xfs_attr_node_list(context); in xfs_attr_list_int()
550 xfs_attr_list_context_t *context, in xfs_attr_put_listent() argument
557 struct attrlist *alist = (struct attrlist *)context->alist; in xfs_attr_put_listent()
561 ASSERT(!(context->flags & ATTR_KERNOVAL)); in xfs_attr_put_listent()
562 ASSERT(context->count >= 0); in xfs_attr_put_listent()
563 ASSERT(context->count < (ATTR_MAX_VALUELEN/8)); in xfs_attr_put_listent()
564 ASSERT(context->firstu >= sizeof(*alist)); in xfs_attr_put_listent()
565 ASSERT(context->firstu <= context->bufsize); in xfs_attr_put_listent()
570 if (((context->flags & ATTR_SECURE) == 0) != in xfs_attr_put_listent()
573 if (((context->flags & ATTR_ROOT) == 0) != in xfs_attr_put_listent()
578 context->count * sizeof(alist->al_offset[0]); in xfs_attr_put_listent()
579 context->firstu -= ATTR_ENTSIZE(namelen); in xfs_attr_put_listent()
580 if (context->firstu < arraytop) { in xfs_attr_put_listent()
581 trace_xfs_attr_list_full(context); in xfs_attr_put_listent()
583 context->seen_enough = 1; in xfs_attr_put_listent()
587 aep = (attrlist_ent_t *)&context->alist[context->firstu]; in xfs_attr_put_listent()
591 alist->al_offset[context->count++] = context->firstu; in xfs_attr_put_listent()
592 alist->al_count = context->count; in xfs_attr_put_listent()
593 trace_xfs_attr_list_add(context); in xfs_attr_put_listent()
612 xfs_attr_list_context_t context; in xfs_attr_list() local
636 memset(&context, 0, sizeof(context)); in xfs_attr_list()
637 context.dp = dp; in xfs_attr_list()
638 context.cursor = cursor; in xfs_attr_list()
639 context.resynch = 1; in xfs_attr_list()
640 context.flags = flags; in xfs_attr_list()
641 context.alist = buffer; in xfs_attr_list()
642 context.bufsize = (bufsize & ~(sizeof(int)-1)); /* align */ in xfs_attr_list()
643 context.firstu = context.bufsize; in xfs_attr_list()
644 context.put_listent = xfs_attr_put_listent; in xfs_attr_list()
646 alist = (struct attrlist *)context.alist; in xfs_attr_list()
649 alist->al_offset[0] = context.bufsize; in xfs_attr_list()
651 error = xfs_attr_list_int(&context); in xfs_attr_list()