Lines Matching refs:args
45 static int xfs_dir2_block_lookup_int(xfs_da_args_t *args, struct xfs_buf **bpp,
285 struct xfs_da_args *args, in xfs_dir2_block_compact() argument
318 xfs_dir2_data_make_free(args, bp, in xfs_dir2_block_compact()
328 xfs_dir2_data_freescan(args->dp, hdr, needlog); in xfs_dir2_block_compact()
336 xfs_da_args_t *args) /* directory op arguments */ in xfs_dir2_block_addname() argument
362 trace_xfs_dir2_block_addname(args); in xfs_dir2_block_addname()
364 dp = args->dp; in xfs_dir2_block_addname()
365 tp = args->trans; in xfs_dir2_block_addname()
372 len = dp->d_ops->data_entsize(args->namelen); in xfs_dir2_block_addname()
378 btp = xfs_dir2_block_tail_p(args->geo, hdr); in xfs_dir2_block_addname()
391 if (args->op_flags & XFS_DA_OP_JUSTCHECK) { in xfs_dir2_block_addname()
403 if (args->total == 0) in xfs_dir2_block_addname()
409 error = xfs_dir2_block_to_leaf(args, bp); in xfs_dir2_block_addname()
412 return xfs_dir2_leaf_addname(args); in xfs_dir2_block_addname()
421 xfs_dir2_block_compact(args, bp, hdr, btp, blp, &needlog, in xfs_dir2_block_addname()
439 if ((hash = be32_to_cpu(blp[mid].hashval)) == args->hashval) in xfs_dir2_block_addname()
441 if (hash < args->hashval) in xfs_dir2_block_addname()
446 while (mid >= 0 && be32_to_cpu(blp[mid].hashval) >= args->hashval) { in xfs_dir2_block_addname()
456 xfs_dir2_data_use_free(args, bp, enddup, in xfs_dir2_block_addname()
536 blp[mid].hashval = cpu_to_be32(args->hashval); in xfs_dir2_block_addname()
543 xfs_dir2_data_use_free(args, bp, dup, in xfs_dir2_block_addname()
549 dep->inumber = cpu_to_be64(args->inumber); in xfs_dir2_block_addname()
550 dep->namelen = args->namelen; in xfs_dir2_block_addname()
551 memcpy(dep->name, args->name, args->namelen); in xfs_dir2_block_addname()
552 dp->d_ops->data_put_ftype(dep, args->filetype); in xfs_dir2_block_addname()
561 xfs_dir2_data_log_header(args, bp); in xfs_dir2_block_addname()
563 xfs_dir2_data_log_entry(args, bp, dep); in xfs_dir2_block_addname()
610 xfs_da_args_t *args) /* dir lookup arguments */ in xfs_dir2_block_lookup() argument
621 trace_xfs_dir2_block_lookup(args); in xfs_dir2_block_lookup()
627 if ((error = xfs_dir2_block_lookup_int(args, &bp, &ent))) in xfs_dir2_block_lookup()
629 dp = args->dp; in xfs_dir2_block_lookup()
632 btp = xfs_dir2_block_tail_p(args->geo, hdr); in xfs_dir2_block_lookup()
638 xfs_dir2_dataptr_to_off(args->geo, in xfs_dir2_block_lookup()
643 args->inumber = be64_to_cpu(dep->inumber); in xfs_dir2_block_lookup()
644 args->filetype = dp->d_ops->data_get_ftype(dep); in xfs_dir2_block_lookup()
645 error = xfs_dir_cilookup_result(args, dep->name, dep->namelen); in xfs_dir2_block_lookup()
646 xfs_trans_brelse(args->trans, bp); in xfs_dir2_block_lookup()
655 xfs_da_args_t *args, /* dir lookup arguments */ in xfs_dir2_block_lookup_int() argument
675 dp = args->dp; in xfs_dir2_block_lookup_int()
676 tp = args->trans; in xfs_dir2_block_lookup_int()
685 btp = xfs_dir2_block_tail_p(args->geo, hdr); in xfs_dir2_block_lookup_int()
694 if ((hash = be32_to_cpu(blp[mid].hashval)) == args->hashval) in xfs_dir2_block_lookup_int()
696 if (hash < args->hashval) in xfs_dir2_block_lookup_int()
701 ASSERT(args->op_flags & XFS_DA_OP_OKNOENT); in xfs_dir2_block_lookup_int()
709 while (mid > 0 && be32_to_cpu(blp[mid - 1].hashval) == args->hashval) { in xfs_dir2_block_lookup_int()
723 ((char *)hdr + xfs_dir2_dataptr_to_off(args->geo, addr)); in xfs_dir2_block_lookup_int()
729 cmp = mp->m_dirnameops->compname(args, dep->name, dep->namelen); in xfs_dir2_block_lookup_int()
730 if (cmp != XFS_CMP_DIFFERENT && cmp != args->cmpresult) { in xfs_dir2_block_lookup_int()
731 args->cmpresult = cmp; in xfs_dir2_block_lookup_int()
740 ASSERT(args->op_flags & XFS_DA_OP_OKNOENT); in xfs_dir2_block_lookup_int()
745 if (args->cmpresult == XFS_CMP_CASE) in xfs_dir2_block_lookup_int()
760 xfs_da_args_t *args) /* directory operation args */ in xfs_dir2_block_removename() argument
776 trace_xfs_dir2_block_removename(args); in xfs_dir2_block_removename()
782 if ((error = xfs_dir2_block_lookup_int(args, &bp, &ent))) { in xfs_dir2_block_removename()
785 dp = args->dp; in xfs_dir2_block_removename()
786 tp = args->trans; in xfs_dir2_block_removename()
788 btp = xfs_dir2_block_tail_p(args->geo, hdr); in xfs_dir2_block_removename()
794 xfs_dir2_dataptr_to_off(args->geo, in xfs_dir2_block_removename()
800 xfs_dir2_data_make_free(args, bp, in xfs_dir2_block_removename()
819 xfs_dir2_data_log_header(args, bp); in xfs_dir2_block_removename()
831 return xfs_dir2_block_to_sf(args, bp, size, &sfh); in xfs_dir2_block_removename()
840 xfs_da_args_t *args) /* directory operation args */ in xfs_dir2_block_replace() argument
851 trace_xfs_dir2_block_replace(args); in xfs_dir2_block_replace()
857 if ((error = xfs_dir2_block_lookup_int(args, &bp, &ent))) { in xfs_dir2_block_replace()
860 dp = args->dp; in xfs_dir2_block_replace()
862 btp = xfs_dir2_block_tail_p(args->geo, hdr); in xfs_dir2_block_replace()
868 xfs_dir2_dataptr_to_off(args->geo, in xfs_dir2_block_replace()
870 ASSERT(be64_to_cpu(dep->inumber) != args->inumber); in xfs_dir2_block_replace()
874 dep->inumber = cpu_to_be64(args->inumber); in xfs_dir2_block_replace()
875 dp->d_ops->data_put_ftype(dep, args->filetype); in xfs_dir2_block_replace()
876 xfs_dir2_data_log_entry(args, bp, dep); in xfs_dir2_block_replace()
903 xfs_da_args_t *args, /* operation arguments */ in xfs_dir2_leaf_to_block() argument
928 trace_xfs_dir2_leaf_to_block(args); in xfs_dir2_leaf_to_block()
930 dp = args->dp; in xfs_dir2_leaf_to_block()
931 tp = args->trans; in xfs_dir2_leaf_to_block()
936 ltp = xfs_dir2_leaf_tail_p(args->geo, leaf); in xfs_dir2_leaf_to_block()
946 while (dp->i_d.di_size > args->geo->blksize) { in xfs_dir2_leaf_to_block()
952 args->geo->blksize - hdrsz) { in xfs_dir2_leaf_to_block()
954 xfs_dir2_leaf_trim_data(args, lbp, in xfs_dir2_leaf_to_block()
964 error = xfs_dir3_data_read(tp, dp, args->geo->datablk, -1, &dbp); in xfs_dir2_leaf_to_block()
980 tagp = (__be16 *)((char *)hdr + args->geo->blksize) - 1; in xfs_dir2_leaf_to_block()
999 xfs_dir2_data_use_free(args, dbp, dup, args->geo->blksize - size, size, in xfs_dir2_leaf_to_block()
1004 btp = xfs_dir2_block_tail_p(args->geo, hdr); in xfs_dir2_leaf_to_block()
1025 xfs_dir2_data_log_header(args, dbp); in xfs_dir2_leaf_to_block()
1029 error = xfs_da_shrink_inode(args, args->geo->leafblk, lbp); in xfs_dir2_leaf_to_block()
1040 return xfs_dir2_block_to_sf(args, dbp, size, &sfh); in xfs_dir2_leaf_to_block()
1048 xfs_da_args_t *args) /* operation arguments */ in xfs_dir2_sf_to_block() argument
1075 trace_xfs_dir2_sf_to_block(args); in xfs_dir2_sf_to_block()
1077 dp = args->dp; in xfs_dir2_sf_to_block()
1078 tp = args->trans; in xfs_dir2_sf_to_block()
1111 error = xfs_dir2_grow_inode(args, XFS_DIR2_DATA_SPACE, &blkno); in xfs_dir2_sf_to_block()
1119 error = xfs_dir3_data_init(args, blkno, &bp); in xfs_dir2_sf_to_block()
1138 xfs_dir2_data_use_free(args, bp, dup, args->geo->blksize - i, in xfs_dir2_sf_to_block()
1144 btp = xfs_dir2_block_tail_p(args->geo, hdr); in xfs_dir2_sf_to_block()
1152 xfs_dir2_data_use_free(args, bp, dup, in xfs_dir2_sf_to_block()
1165 xfs_dir2_data_log_entry(args, bp, dep); in xfs_dir2_sf_to_block()
1179 xfs_dir2_data_log_entry(args, bp, dep); in xfs_dir2_sf_to_block()
1213 xfs_dir2_data_log_unused(args, bp, dup); in xfs_dir2_sf_to_block()
1230 xfs_dir2_data_log_entry(args, bp, dep); in xfs_dir2_sf_to_block()