Lines Matching defs:args
26 static int xfs_dir2_leaf_lookup_int(xfs_da_args_t *args, struct xfs_buf **lbpp,
29 static void xfs_dir3_leaf_log_bests(struct xfs_da_args *args,
31 static void xfs_dir3_leaf_log_tail(struct xfs_da_args *args,
342 xfs_da_args_t *args,
347 struct xfs_inode *dp = args->dp;
348 struct xfs_trans *tp = args->trans;
354 ASSERT(bno >= xfs_dir2_byte_to_db(args->geo, XFS_DIR2_LEAF_OFFSET) &&
355 bno < xfs_dir2_byte_to_db(args->geo, XFS_DIR2_FREE_OFFSET));
357 error = xfs_da_get_buf(tp, dp, xfs_dir2_db_to_da(args->geo, bno),
363 xfs_dir3_leaf_log_header(args, bp);
365 xfs_dir3_leaf_log_tail(args, bp);
375 xfs_da_args_t *args, /* operation arguments */
395 trace_xfs_dir2_block_to_leaf(args);
397 dp = args->dp;
398 tp = args->trans;
404 if ((error = xfs_da_grow_inode(args, &blkno))) {
407 ldb = xfs_dir2_da_to_db(args->geo, blkno);
408 ASSERT(ldb == xfs_dir2_byte_to_db(args->geo, XFS_DIR2_LEAF_OFFSET));
412 error = xfs_dir3_leaf_get_buf(args, ldb, &lbp, XFS_DIR2_LEAF1_MAGIC);
419 btp = xfs_dir2_block_tail_p(args->geo, hdr);
430 xfs_dir3_leaf_log_header(args, lbp);
438 xfs_dir3_leaf_log_ents(args, &leafhdr, lbp, 0, leafhdr.count - 1);
445 xfs_dir2_data_make_free(args, dbp,
447 (xfs_dir2_data_aoff_t)((char *)hdr + args->geo->blksize -
465 ltp = xfs_dir2_leaf_tail_p(args->geo, leaf);
473 xfs_dir2_data_log_header(args, dbp);
476 xfs_dir3_leaf_log_bests(args, lbp, 0, 0);
606 struct xfs_da_args *args) /* operation arguments */
609 struct xfs_trans *tp = args->trans;
615 struct xfs_inode *dp = args->dp; /* incore directory inode */
638 trace_xfs_dir2_leaf_addname(args);
640 error = xfs_dir3_leaf_read(tp, dp, args->geo->leafblk, &lbp);
650 index = xfs_dir2_leaf_search_hash(args, lbp);
652 ltp = xfs_dir2_leaf_tail_p(args->geo, leaf);
656 length = xfs_dir2_data_entsize(dp->i_mount, args->namelen);
665 index < leafhdr.count && be32_to_cpu(lep->hashval) == args->hashval;
669 i = xfs_dir2_dataptr_to_db(args->geo, be32_to_cpu(lep->address));
725 if ((args->op_flags & XFS_DA_OP_JUSTCHECK) ||
726 args->total == 0) {
733 error = xfs_dir2_leaf_to_node(args, lbp);
739 return xfs_dir2_node_addname(args);
750 if (args->op_flags & XFS_DA_OP_JUSTCHECK) {
758 if (args->total == 0 && use_block == -1) {
788 if ((error = xfs_dir2_grow_inode(args, XFS_DIR2_DATA_SPACE,
796 if ((error = xfs_dir3_data_init(args, use_block, &dbp))) {
809 xfs_dir3_leaf_log_tail(args, lbp);
810 xfs_dir3_leaf_log_bests(args, lbp, 0,
817 xfs_dir3_leaf_log_bests(args, lbp, use_block, use_block);
828 xfs_dir2_db_to_da(args->geo, use_block),
847 error = xfs_dir2_data_use_free(args, dbp, dup,
858 dep->inumber = cpu_to_be64(args->inumber);
859 dep->namelen = args->namelen;
860 memcpy(dep->name, args->name, dep->namelen);
861 xfs_dir2_data_put_ftype(dp->i_mount, dep, args->filetype);
873 xfs_dir2_data_log_header(args, dbp);
874 xfs_dir2_data_log_entry(args, dbp, dep);
882 xfs_dir3_leaf_log_bests(args, lbp, use_block, use_block);
891 lep->hashval = cpu_to_be32(args->hashval);
893 xfs_dir2_db_off_to_dataptr(args->geo, use_block,
899 xfs_dir3_leaf_log_header(args, lbp);
900 xfs_dir3_leaf_log_ents(args, &leafhdr, lbp, lfloglow, lfloghigh);
912 xfs_da_args_t *args, /* operation arguments */
920 struct xfs_inode *dp = args->dp;
951 xfs_dir3_leaf_log_header(args, bp);
953 xfs_dir3_leaf_log_ents(args, leafhdr, bp, loglow, to - 1);
1055 struct xfs_da_args *args,
1068 ltp = xfs_dir2_leaf_tail_p(args->geo, leaf);
1071 xfs_trans_log_buf(args->trans, bp,
1081 struct xfs_da_args *args,
1098 xfs_trans_log_buf(args->trans, bp,
1108 struct xfs_da_args *args,
1118 xfs_trans_log_buf(args->trans, bp,
1120 args->geo->leaf_hdr_size - 1);
1128 struct xfs_da_args *args,
1139 ltp = xfs_dir2_leaf_tail_p(args->geo, leaf);
1140 xfs_trans_log_buf(args->trans, bp, (uint)((char *)ltp - (char *)leaf),
1141 (uint)(args->geo->blksize - 1));
1145 * Look up the entry referred to by args in the leaf format directory.
1151 xfs_da_args_t *args) /* operation arguments */
1163 trace_xfs_dir2_leaf_lookup(args);
1168 error = xfs_dir2_leaf_lookup_int(args, &lbp, &index, &dbp, &leafhdr);
1172 tp = args->trans;
1173 dp = args->dp;
1186 xfs_dir2_dataptr_to_off(args->geo, be32_to_cpu(lep->address)));
1190 args->inumber = be64_to_cpu(dep->inumber);
1191 args->filetype = xfs_dir2_data_get_ftype(dp->i_mount, dep);
1192 error = xfs_dir_cilookup_result(args, dep->name, dep->namelen);
1206 xfs_da_args_t *args, /* operation arguments */
1227 dp = args->dp;
1228 tp = args->trans;
1231 error = xfs_dir3_leaf_read(tp, dp, args->geo->leafblk, &lbp);
1243 index = xfs_dir2_leaf_search_hash(args, lbp);
1250 be32_to_cpu(lep->hashval) == args->hashval;
1260 newdb = xfs_dir2_dataptr_to_db(args->geo,
1270 xfs_dir2_db_to_da(args->geo, newdb),
1282 xfs_dir2_dataptr_to_off(args->geo,
1289 cmp = xfs_dir2_compname(args, dep->name, dep->namelen);
1290 if (cmp != XFS_CMP_DIFFERENT && cmp != args->cmpresult) {
1291 args->cmpresult = cmp;
1301 ASSERT(args->op_flags & XFS_DA_OP_OKNOENT);
1307 if (args->cmpresult == XFS_CMP_CASE) {
1312 xfs_dir2_db_to_da(args->geo, cidb),
1337 xfs_da_args_t *args) /* operation arguments */
1339 struct xfs_da_geometry *geo = args->geo;
1359 trace_xfs_dir2_leaf_removename(args);
1364 error = xfs_dir2_leaf_lookup_int(args, &lbp, &index, &dbp, &leafhdr);
1368 dp = args->dp;
1392 xfs_dir2_data_make_free(args, dbp,
1401 xfs_dir3_leaf_log_header(args, lbp);
1404 xfs_dir3_leaf_log_ents(args, &leafhdr, lbp, index, index);
1413 xfs_dir2_data_log_header(args, dbp);
1420 xfs_dir3_leaf_log_bests(args, lbp, db, db);
1429 if ((error = xfs_dir2_shrink_inode(args, db, dbp))) {
1436 if (error == -ENOSPC && args->total == 0)
1461 xfs_dir3_leaf_log_tail(args, lbp);
1462 xfs_dir3_leaf_log_bests(args, lbp, 0,
1477 return xfs_dir2_leaf_to_block(args, lbp, dbp);
1485 xfs_da_args_t *args) /* operation arguments */
1497 trace_xfs_dir2_leaf_replace(args);
1502 error = xfs_dir2_leaf_lookup_int(args, &lbp, &index, &dbp, &leafhdr);
1506 dp = args->dp;
1516 xfs_dir2_dataptr_to_off(args->geo, be32_to_cpu(lep->address)));
1517 ASSERT(args->inumber != be64_to_cpu(dep->inumber));
1521 dep->inumber = cpu_to_be64(args->inumber);
1522 xfs_dir2_data_put_ftype(dp->i_mount, dep, args->filetype);
1523 tp = args->trans;
1524 xfs_dir2_data_log_entry(args, dbp, dep);
1537 xfs_da_args_t *args, /* operation arguments */
1548 xfs_dir2_leaf_hdr_from_disk(args->dp->i_mount, &leafhdr, lbp->b_addr);
1555 hashwant = args->hashval;
1587 xfs_da_args_t *args, /* operation arguments */
1591 struct xfs_da_geometry *geo = args->geo;
1600 dp = args->dp;
1601 tp = args->trans;
1629 if ((error = xfs_dir2_shrink_inode(args, db, dbp))) {
1640 xfs_dir3_leaf_log_tail(args, lbp);
1641 xfs_dir3_leaf_log_bests(args, lbp, 0, be32_to_cpu(ltp->bestcount) - 1);
1674 xfs_da_args_t *args; /* operation arguments */
1694 args = state->args;
1696 trace_xfs_dir2_node_to_leaf(args);
1699 dp = args->dp;
1700 tp = args->trans;
1707 fo -= args->geo->fsbcount;
1714 while (fo > args->geo->freeblk) {
1715 if ((error = xfs_dir2_node_trim_free(args, fo, &rval))) {
1719 fo -= args->geo->fsbcount;
1732 if (XFS_FSB_TO_B(mp, fo) > XFS_DIR2_LEAF_OFFSET + args->geo->blksize)
1744 error = xfs_dir2_free_read(tp, dp, args->geo->freeblk, &fbp);
1755 if (xfs_dir3_leaf_size(&leafhdr, freehdr.nvalid) > args->geo->blksize) {
1764 xfs_dir3_leaf_compact(args, &leafhdr, lbp);
1775 ltp = xfs_dir2_leaf_tail_p(args->geo, leaf);
1785 xfs_dir3_leaf_log_header(args, lbp);
1786 xfs_dir3_leaf_log_bests(args, lbp, 0, be32_to_cpu(ltp->bestcount) - 1);
1787 xfs_dir3_leaf_log_tail(args, lbp);
1793 error = xfs_dir2_shrink_inode(args,
1794 xfs_dir2_byte_to_db(args->geo, XFS_DIR2_FREE_OFFSET),
1812 error = xfs_dir2_leaf_to_block(args, lbp, NULL);