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,
351 xfs_da_args_t *args,
356 struct xfs_inode *dp = args->dp;
357 struct xfs_trans *tp = args->trans;
363 ASSERT(bno >= xfs_dir2_byte_to_db(args->geo, XFS_DIR2_LEAF_OFFSET) &&
364 bno < xfs_dir2_byte_to_db(args->geo, XFS_DIR2_FREE_OFFSET));
366 error = xfs_da_get_buf(tp, dp, xfs_dir2_db_to_da(args->geo, bno),
372 xfs_dir3_leaf_log_header(args, bp);
374 xfs_dir3_leaf_log_tail(args, bp);
384 xfs_da_args_t *args, /* operation arguments */
404 trace_xfs_dir2_block_to_leaf(args);
406 dp = args->dp;
407 tp = args->trans;
413 if ((error = xfs_da_grow_inode(args, &blkno))) {
416 ldb = xfs_dir2_da_to_db(args->geo, blkno);
417 ASSERT(ldb == xfs_dir2_byte_to_db(args->geo, XFS_DIR2_LEAF_OFFSET));
421 error = xfs_dir3_leaf_get_buf(args, ldb, &lbp, XFS_DIR2_LEAF1_MAGIC);
428 btp = xfs_dir2_block_tail_p(args->geo, hdr);
439 xfs_dir3_leaf_log_header(args, lbp);
447 xfs_dir3_leaf_log_ents(args, &leafhdr, lbp, 0, leafhdr.count - 1);
454 xfs_dir2_data_make_free(args, dbp,
456 (xfs_dir2_data_aoff_t)((char *)hdr + args->geo->blksize -
474 ltp = xfs_dir2_leaf_tail_p(args->geo, leaf);
482 xfs_dir2_data_log_header(args, dbp);
485 xfs_dir3_leaf_log_bests(args, lbp, 0, 0);
615 struct xfs_da_args *args) /* operation arguments */
618 struct xfs_trans *tp = args->trans;
624 struct xfs_inode *dp = args->dp; /* incore directory inode */
647 trace_xfs_dir2_leaf_addname(args);
649 error = xfs_dir3_leaf_read(tp, dp, args->geo->leafblk, &lbp);
659 index = xfs_dir2_leaf_search_hash(args, lbp);
661 ltp = xfs_dir2_leaf_tail_p(args->geo, leaf);
665 length = xfs_dir2_data_entsize(dp->i_mount, args->namelen);
674 index < leafhdr.count && be32_to_cpu(lep->hashval) == args->hashval;
678 i = xfs_dir2_dataptr_to_db(args->geo, be32_to_cpu(lep->address));
734 if ((args->op_flags & XFS_DA_OP_JUSTCHECK) ||
735 args->total == 0) {
742 error = xfs_dir2_leaf_to_node(args, lbp);
748 return xfs_dir2_node_addname(args);
759 if (args->op_flags & XFS_DA_OP_JUSTCHECK) {
767 if (args->total == 0 && use_block == -1) {
797 if ((error = xfs_dir2_grow_inode(args, XFS_DIR2_DATA_SPACE,
805 if ((error = xfs_dir3_data_init(args, use_block, &dbp))) {
818 xfs_dir3_leaf_log_tail(args, lbp);
819 xfs_dir3_leaf_log_bests(args, lbp, 0,
826 xfs_dir3_leaf_log_bests(args, lbp, use_block, use_block);
837 xfs_dir2_db_to_da(args->geo, use_block),
856 error = xfs_dir2_data_use_free(args, dbp, dup,
867 dep->inumber = cpu_to_be64(args->inumber);
868 dep->namelen = args->namelen;
869 memcpy(dep->name, args->name, dep->namelen);
870 xfs_dir2_data_put_ftype(dp->i_mount, dep, args->filetype);
882 xfs_dir2_data_log_header(args, dbp);
883 xfs_dir2_data_log_entry(args, dbp, dep);
891 xfs_dir3_leaf_log_bests(args, lbp, use_block, use_block);
900 lep->hashval = cpu_to_be32(args->hashval);
902 xfs_dir2_db_off_to_dataptr(args->geo, use_block,
908 xfs_dir3_leaf_log_header(args, lbp);
909 xfs_dir3_leaf_log_ents(args, &leafhdr, lbp, lfloglow, lfloghigh);
921 xfs_da_args_t *args, /* operation arguments */
929 struct xfs_inode *dp = args->dp;
960 xfs_dir3_leaf_log_header(args, bp);
962 xfs_dir3_leaf_log_ents(args, leafhdr, bp, loglow, to - 1);
1064 struct xfs_da_args *args,
1077 ltp = xfs_dir2_leaf_tail_p(args->geo, leaf);
1080 xfs_trans_log_buf(args->trans, bp,
1090 struct xfs_da_args *args,
1107 xfs_trans_log_buf(args->trans, bp,
1117 struct xfs_da_args *args,
1127 xfs_trans_log_buf(args->trans, bp,
1129 args->geo->leaf_hdr_size - 1);
1137 struct xfs_da_args *args,
1148 ltp = xfs_dir2_leaf_tail_p(args->geo, leaf);
1149 xfs_trans_log_buf(args->trans, bp, (uint)((char *)ltp - (char *)leaf),
1150 (uint)(args->geo->blksize - 1));
1154 * Look up the entry referred to by args in the leaf format directory.
1160 xfs_da_args_t *args) /* operation arguments */
1172 trace_xfs_dir2_leaf_lookup(args);
1177 error = xfs_dir2_leaf_lookup_int(args, &lbp, &index, &dbp, &leafhdr);
1181 tp = args->trans;
1182 dp = args->dp;
1195 xfs_dir2_dataptr_to_off(args->geo, be32_to_cpu(lep->address)));
1199 args->inumber = be64_to_cpu(dep->inumber);
1200 args->filetype = xfs_dir2_data_get_ftype(dp->i_mount, dep);
1201 error = xfs_dir_cilookup_result(args, dep->name, dep->namelen);
1215 xfs_da_args_t *args, /* operation arguments */
1236 dp = args->dp;
1237 tp = args->trans;
1240 error = xfs_dir3_leaf_read(tp, dp, args->geo->leafblk, &lbp);
1252 index = xfs_dir2_leaf_search_hash(args, lbp);
1259 be32_to_cpu(lep->hashval) == args->hashval;
1269 newdb = xfs_dir2_dataptr_to_db(args->geo,
1279 xfs_dir2_db_to_da(args->geo, newdb),
1291 xfs_dir2_dataptr_to_off(args->geo,
1298 cmp = xfs_dir2_compname(args, dep->name, dep->namelen);
1299 if (cmp != XFS_CMP_DIFFERENT && cmp != args->cmpresult) {
1300 args->cmpresult = cmp;
1310 ASSERT(args->op_flags & XFS_DA_OP_OKNOENT);
1316 if (args->cmpresult == XFS_CMP_CASE) {
1321 xfs_dir2_db_to_da(args->geo, cidb),
1346 xfs_da_args_t *args) /* operation arguments */
1348 struct xfs_da_geometry *geo = args->geo;
1368 trace_xfs_dir2_leaf_removename(args);
1373 error = xfs_dir2_leaf_lookup_int(args, &lbp, &index, &dbp, &leafhdr);
1377 dp = args->dp;
1401 xfs_dir2_data_make_free(args, dbp,
1410 xfs_dir3_leaf_log_header(args, lbp);
1413 xfs_dir3_leaf_log_ents(args, &leafhdr, lbp, index, index);
1422 xfs_dir2_data_log_header(args, dbp);
1429 xfs_dir3_leaf_log_bests(args, lbp, db, db);
1438 if ((error = xfs_dir2_shrink_inode(args, db, dbp))) {
1445 if (error == -ENOSPC && args->total == 0)
1470 xfs_dir3_leaf_log_tail(args, lbp);
1471 xfs_dir3_leaf_log_bests(args, lbp, 0,
1486 return xfs_dir2_leaf_to_block(args, lbp, dbp);
1494 xfs_da_args_t *args) /* operation arguments */
1506 trace_xfs_dir2_leaf_replace(args);
1511 error = xfs_dir2_leaf_lookup_int(args, &lbp, &index, &dbp, &leafhdr);
1515 dp = args->dp;
1525 xfs_dir2_dataptr_to_off(args->geo, be32_to_cpu(lep->address)));
1526 ASSERT(args->inumber != be64_to_cpu(dep->inumber));
1530 dep->inumber = cpu_to_be64(args->inumber);
1531 xfs_dir2_data_put_ftype(dp->i_mount, dep, args->filetype);
1532 tp = args->trans;
1533 xfs_dir2_data_log_entry(args, dbp, dep);
1546 xfs_da_args_t *args, /* operation arguments */
1557 xfs_dir2_leaf_hdr_from_disk(args->dp->i_mount, &leafhdr, lbp->b_addr);
1564 hashwant = args->hashval;
1596 xfs_da_args_t *args, /* operation arguments */
1600 struct xfs_da_geometry *geo = args->geo;
1609 dp = args->dp;
1610 tp = args->trans;
1638 if ((error = xfs_dir2_shrink_inode(args, db, dbp))) {
1649 xfs_dir3_leaf_log_tail(args, lbp);
1650 xfs_dir3_leaf_log_bests(args, lbp, 0, be32_to_cpu(ltp->bestcount) - 1);
1683 xfs_da_args_t *args; /* operation arguments */
1703 args = state->args;
1705 trace_xfs_dir2_node_to_leaf(args);
1708 dp = args->dp;
1709 tp = args->trans;
1716 fo -= args->geo->fsbcount;
1723 while (fo > args->geo->freeblk) {
1724 if ((error = xfs_dir2_node_trim_free(args, fo, &rval))) {
1728 fo -= args->geo->fsbcount;
1741 if (XFS_FSB_TO_B(mp, fo) > XFS_DIR2_LEAF_OFFSET + args->geo->blksize)
1753 error = xfs_dir2_free_read(tp, dp, args->geo->freeblk, &fbp);
1764 if (xfs_dir3_leaf_size(&leafhdr, freehdr.nvalid) > args->geo->blksize) {
1773 xfs_dir3_leaf_compact(args, &leafhdr, lbp);
1784 ltp = xfs_dir2_leaf_tail_p(args->geo, leaf);
1794 xfs_dir3_leaf_log_header(args, lbp);
1795 xfs_dir3_leaf_log_bests(args, lbp, 0, be32_to_cpu(ltp->bestcount) - 1);
1796 xfs_dir3_leaf_log_tail(args, lbp);
1802 error = xfs_dir2_shrink_inode(args,
1803 xfs_dir2_byte_to_db(args->geo, XFS_DIR2_FREE_OFFSET),
1821 error = xfs_dir2_leaf_to_block(args, lbp, NULL);