Lines Matching refs:args
44 static int xfs_dir2_block_lookup_int(xfs_da_args_t *args, struct xfs_buf **bpp,
281 struct xfs_da_args *args, in xfs_dir2_block_compact() argument
314 xfs_dir2_data_make_free(args, bp, in xfs_dir2_block_compact()
324 xfs_dir2_data_freescan(args->dp, hdr, needlog); in xfs_dir2_block_compact()
332 xfs_da_args_t *args) /* directory op arguments */ in xfs_dir2_block_addname() argument
358 trace_xfs_dir2_block_addname(args); in xfs_dir2_block_addname()
360 dp = args->dp; in xfs_dir2_block_addname()
361 tp = args->trans; in xfs_dir2_block_addname()
368 len = dp->d_ops->data_entsize(args->namelen); in xfs_dir2_block_addname()
374 btp = xfs_dir2_block_tail_p(args->geo, hdr); in xfs_dir2_block_addname()
387 if (args->op_flags & XFS_DA_OP_JUSTCHECK) { in xfs_dir2_block_addname()
399 if (args->total == 0) in xfs_dir2_block_addname()
405 error = xfs_dir2_block_to_leaf(args, bp); in xfs_dir2_block_addname()
408 return xfs_dir2_leaf_addname(args); in xfs_dir2_block_addname()
417 xfs_dir2_block_compact(args, bp, hdr, btp, blp, &needlog, in xfs_dir2_block_addname()
435 if ((hash = be32_to_cpu(blp[mid].hashval)) == args->hashval) in xfs_dir2_block_addname()
437 if (hash < args->hashval) in xfs_dir2_block_addname()
442 while (mid >= 0 && be32_to_cpu(blp[mid].hashval) >= args->hashval) { in xfs_dir2_block_addname()
452 xfs_dir2_data_use_free(args, bp, enddup, in xfs_dir2_block_addname()
532 blp[mid].hashval = cpu_to_be32(args->hashval); in xfs_dir2_block_addname()
539 xfs_dir2_data_use_free(args, bp, dup, in xfs_dir2_block_addname()
545 dep->inumber = cpu_to_be64(args->inumber); in xfs_dir2_block_addname()
546 dep->namelen = args->namelen; in xfs_dir2_block_addname()
547 memcpy(dep->name, args->name, args->namelen); in xfs_dir2_block_addname()
548 dp->d_ops->data_put_ftype(dep, args->filetype); in xfs_dir2_block_addname()
557 xfs_dir2_data_log_header(args, bp); in xfs_dir2_block_addname()
559 xfs_dir2_data_log_entry(args, bp, dep); in xfs_dir2_block_addname()
606 xfs_da_args_t *args) /* dir lookup arguments */ in xfs_dir2_block_lookup() argument
617 trace_xfs_dir2_block_lookup(args); in xfs_dir2_block_lookup()
623 if ((error = xfs_dir2_block_lookup_int(args, &bp, &ent))) in xfs_dir2_block_lookup()
625 dp = args->dp; in xfs_dir2_block_lookup()
628 btp = xfs_dir2_block_tail_p(args->geo, hdr); in xfs_dir2_block_lookup()
634 xfs_dir2_dataptr_to_off(args->geo, in xfs_dir2_block_lookup()
639 args->inumber = be64_to_cpu(dep->inumber); in xfs_dir2_block_lookup()
640 args->filetype = dp->d_ops->data_get_ftype(dep); in xfs_dir2_block_lookup()
641 error = xfs_dir_cilookup_result(args, dep->name, dep->namelen); in xfs_dir2_block_lookup()
642 xfs_trans_brelse(args->trans, bp); in xfs_dir2_block_lookup()
651 xfs_da_args_t *args, /* dir lookup arguments */ in xfs_dir2_block_lookup_int() argument
671 dp = args->dp; in xfs_dir2_block_lookup_int()
672 tp = args->trans; in xfs_dir2_block_lookup_int()
681 btp = xfs_dir2_block_tail_p(args->geo, hdr); in xfs_dir2_block_lookup_int()
690 if ((hash = be32_to_cpu(blp[mid].hashval)) == args->hashval) in xfs_dir2_block_lookup_int()
692 if (hash < args->hashval) in xfs_dir2_block_lookup_int()
697 ASSERT(args->op_flags & XFS_DA_OP_OKNOENT); in xfs_dir2_block_lookup_int()
705 while (mid > 0 && be32_to_cpu(blp[mid - 1].hashval) == args->hashval) { in xfs_dir2_block_lookup_int()
719 ((char *)hdr + xfs_dir2_dataptr_to_off(args->geo, addr)); in xfs_dir2_block_lookup_int()
725 cmp = mp->m_dirnameops->compname(args, dep->name, dep->namelen); in xfs_dir2_block_lookup_int()
726 if (cmp != XFS_CMP_DIFFERENT && cmp != args->cmpresult) { in xfs_dir2_block_lookup_int()
727 args->cmpresult = cmp; in xfs_dir2_block_lookup_int()
736 ASSERT(args->op_flags & XFS_DA_OP_OKNOENT); in xfs_dir2_block_lookup_int()
741 if (args->cmpresult == XFS_CMP_CASE) in xfs_dir2_block_lookup_int()
756 xfs_da_args_t *args) /* directory operation args */ in xfs_dir2_block_removename() argument
772 trace_xfs_dir2_block_removename(args); in xfs_dir2_block_removename()
778 if ((error = xfs_dir2_block_lookup_int(args, &bp, &ent))) { in xfs_dir2_block_removename()
781 dp = args->dp; in xfs_dir2_block_removename()
782 tp = args->trans; in xfs_dir2_block_removename()
784 btp = xfs_dir2_block_tail_p(args->geo, hdr); in xfs_dir2_block_removename()
790 xfs_dir2_dataptr_to_off(args->geo, in xfs_dir2_block_removename()
796 xfs_dir2_data_make_free(args, bp, in xfs_dir2_block_removename()
815 xfs_dir2_data_log_header(args, bp); in xfs_dir2_block_removename()
827 return xfs_dir2_block_to_sf(args, bp, size, &sfh); in xfs_dir2_block_removename()
836 xfs_da_args_t *args) /* directory operation args */ in xfs_dir2_block_replace() argument
847 trace_xfs_dir2_block_replace(args); in xfs_dir2_block_replace()
853 if ((error = xfs_dir2_block_lookup_int(args, &bp, &ent))) { in xfs_dir2_block_replace()
856 dp = args->dp; in xfs_dir2_block_replace()
858 btp = xfs_dir2_block_tail_p(args->geo, hdr); in xfs_dir2_block_replace()
864 xfs_dir2_dataptr_to_off(args->geo, in xfs_dir2_block_replace()
866 ASSERT(be64_to_cpu(dep->inumber) != args->inumber); in xfs_dir2_block_replace()
870 dep->inumber = cpu_to_be64(args->inumber); in xfs_dir2_block_replace()
871 dp->d_ops->data_put_ftype(dep, args->filetype); in xfs_dir2_block_replace()
872 xfs_dir2_data_log_entry(args, bp, dep); in xfs_dir2_block_replace()
899 xfs_da_args_t *args, /* operation arguments */ in xfs_dir2_leaf_to_block() argument
924 trace_xfs_dir2_leaf_to_block(args); in xfs_dir2_leaf_to_block()
926 dp = args->dp; in xfs_dir2_leaf_to_block()
927 tp = args->trans; in xfs_dir2_leaf_to_block()
932 ltp = xfs_dir2_leaf_tail_p(args->geo, leaf); in xfs_dir2_leaf_to_block()
942 while (dp->i_d.di_size > args->geo->blksize) { in xfs_dir2_leaf_to_block()
948 args->geo->blksize - hdrsz) { in xfs_dir2_leaf_to_block()
950 xfs_dir2_leaf_trim_data(args, lbp, in xfs_dir2_leaf_to_block()
960 error = xfs_dir3_data_read(tp, dp, args->geo->datablk, -1, &dbp); in xfs_dir2_leaf_to_block()
976 tagp = (__be16 *)((char *)hdr + args->geo->blksize) - 1; in xfs_dir2_leaf_to_block()
995 xfs_dir2_data_use_free(args, dbp, dup, args->geo->blksize - size, size, in xfs_dir2_leaf_to_block()
1000 btp = xfs_dir2_block_tail_p(args->geo, hdr); in xfs_dir2_leaf_to_block()
1021 xfs_dir2_data_log_header(args, dbp); in xfs_dir2_leaf_to_block()
1025 error = xfs_da_shrink_inode(args, args->geo->leafblk, lbp); in xfs_dir2_leaf_to_block()
1036 return xfs_dir2_block_to_sf(args, dbp, size, &sfh); in xfs_dir2_leaf_to_block()
1044 xfs_da_args_t *args) /* operation arguments */ in xfs_dir2_sf_to_block() argument
1071 trace_xfs_dir2_sf_to_block(args); in xfs_dir2_sf_to_block()
1073 dp = args->dp; in xfs_dir2_sf_to_block()
1074 tp = args->trans; in xfs_dir2_sf_to_block()
1107 error = xfs_dir2_grow_inode(args, XFS_DIR2_DATA_SPACE, &blkno); in xfs_dir2_sf_to_block()
1115 error = xfs_dir3_data_init(args, blkno, &bp); in xfs_dir2_sf_to_block()
1134 xfs_dir2_data_use_free(args, bp, dup, args->geo->blksize - i, in xfs_dir2_sf_to_block()
1140 btp = xfs_dir2_block_tail_p(args->geo, hdr); in xfs_dir2_sf_to_block()
1148 xfs_dir2_data_use_free(args, bp, dup, in xfs_dir2_sf_to_block()
1161 xfs_dir2_data_log_entry(args, bp, dep); in xfs_dir2_sf_to_block()
1175 xfs_dir2_data_log_entry(args, bp, dep); in xfs_dir2_sf_to_block()
1209 xfs_dir2_data_log_unused(args, bp, dup); in xfs_dir2_sf_to_block()
1226 xfs_dir2_data_log_entry(args, bp, dep); in xfs_dir2_sf_to_block()