Lines Matching defs:args
27 static int xfs_dir2_leafn_add(struct xfs_buf *bp, xfs_da_args_t *args,
32 static int xfs_dir2_leafn_remove(xfs_da_args_t *args, struct xfs_buf *bp,
318 xfs_da_args_t *args,
322 struct xfs_trans *tp = args->trans;
323 struct xfs_inode *dp = args->dp;
329 error = xfs_da_get_buf(tp, dp, xfs_dir2_db_to_da(args->geo, fbno),
364 struct xfs_da_args *args,
374 xfs_trans_log_buf(args->trans, bp,
385 struct xfs_da_args *args,
395 xfs_trans_log_buf(args->trans, bp, 0,
396 args->geo->free_hdr_size - 1);
406 xfs_da_args_t *args, /* operation arguments */
422 trace_xfs_dir2_leaf_to_node(args);
424 dp = args->dp;
425 tp = args->trans;
429 if ((error = xfs_dir2_grow_inode(args, XFS_DIR2_FREE_SPACE, &fdb))) {
432 ASSERT(fdb == xfs_dir2_byte_to_db(args->geo, XFS_DIR2_FREE_OFFSET));
436 error = xfs_dir3_free_get_buf(args, fdb, &fbp);
442 ltp = xfs_dir2_leaf_tail_p(args->geo, leaf);
444 (uint)dp->i_disk_size / args->geo->blksize) {
468 xfs_dir2_free_log_bests(args, &freehdr, fbp, 0, freehdr.nvalid - 1);
469 xfs_dir2_free_log_header(args, fbp);
483 xfs_dir3_leaf_log_header(args, lbp);
495 struct xfs_da_args *args, /* operation arguments */
499 struct xfs_inode *dp = args->dp;
509 trace_xfs_dir2_leafn_add(args, index);
530 if (leafhdr.count == args->geo->leaf_max_ents) {
536 ASSERT(index == 0 || be32_to_cpu(ents[index - 1].hashval) <= args->hashval);
538 be32_to_cpu(ents[index].hashval) >= args->hashval);
540 if (args->op_flags & XFS_DA_OP_JUSTCHECK)
564 lep->hashval = cpu_to_be32(args->hashval);
565 lep->address = cpu_to_be32(xfs_dir2_db_off_to_dataptr(args->geo,
566 args->blkno, args->index));
569 xfs_dir3_leaf_log_header(args, bp);
570 xfs_dir3_leaf_log_ents(args, &leafhdr, bp, lfloglow, lfloghigh);
627 xfs_da_args_t *args, /* operation arguments */
648 dp = args->dp;
649 tp = args->trans;
660 index = xfs_dir2_leaf_search_hash(args, bp);
672 length = xfs_dir2_data_entsize(mp, args->namelen);
677 index < leafhdr.count && be32_to_cpu(lep->hashval) == args->hashval;
687 newdb = xfs_dir2_dataptr_to_db(args->geo,
705 newfdb = xfs_dir2_db_to_fdb(args->geo, newdb);
717 xfs_dir2_db_to_da(args->geo,
729 fi = xfs_dir2_db_to_fdindex(args->geo, curdb);
749 ASSERT(args->op_flags & XFS_DA_OP_OKNOENT);
780 xfs_da_args_t *args, /* operation arguments */
798 dp = args->dp;
799 tp = args->trans;
813 index = xfs_dir2_leaf_search_hash(args, bp);
825 index < leafhdr.count && be32_to_cpu(lep->hashval) == args->hashval;
835 newdb = xfs_dir2_dataptr_to_db(args->geo,
848 if (curbp && (args->cmpresult == XFS_CMP_DIFFERENT ||
855 if (args->cmpresult != XFS_CMP_DIFFERENT &&
861 xfs_dir2_db_to_da(args->geo,
874 xfs_dir2_dataptr_to_off(args->geo,
881 cmp = xfs_dir2_compname(args, dep->name, dep->namelen);
882 if (cmp != XFS_CMP_DIFFERENT && cmp != args->cmpresult) {
884 if (args->cmpresult != XFS_CMP_DIFFERENT &&
887 args->cmpresult = cmp;
888 args->inumber = be64_to_cpu(dep->inumber);
889 args->filetype = xfs_dir2_data_get_ftype(mp, dep);
903 ASSERT(index == leafhdr.count || (args->op_flags & XFS_DA_OP_OKNOENT));
905 if (args->cmpresult == XFS_CMP_DIFFERENT) {
934 xfs_da_args_t *args, /* operation arguments */
938 if (args->op_flags & XFS_DA_OP_ADDNAME)
939 return xfs_dir2_leafn_lookup_for_addname(bp, args, indexp,
941 return xfs_dir2_leafn_lookup_for_entry(bp, args, indexp, state);
950 xfs_da_args_t *args, /* operation arguments */
963 trace_xfs_dir2_leafn_moveents(args, start_s, start_d, count);
979 xfs_dir3_leaf_log_ents(args, dhdr, bp_d, start_d + count,
1001 xfs_dir3_leaf_log_ents(args, dhdr, bp_d, start_d, start_d + count - 1);
1010 xfs_dir3_leaf_log_ents(args, shdr, bp_s, start_s,
1066 xfs_da_args_t *args; /* operation arguments */
1081 struct xfs_inode *dp = state->args->dp;
1083 args = state->args;
1115 isleft = args->hashval <= midhash;
1130 xfs_dir3_leafn_moveents(args, blk1->bp, &hdr1, ents1,
1134 xfs_dir3_leafn_moveents(args, blk2->bp, &hdr2, ents2, 0,
1144 xfs_dir3_leaf_log_header(args, blk1->bp);
1145 xfs_dir3_leaf_log_header(args, blk2->bp);
1180 xfs_da_args_t *args,
1190 struct xfs_inode *dp = args->dp;
1199 xfs_dir2_free_log_bests(args, &freehdr, fbp, findex, findex);
1227 xfs_dir2_free_log_header(args, fbp);
1236 error = xfs_dir2_shrink_inode(args, fdb, fbp);
1240 } else if (error != -ENOSPC || args->total != 0)
1251 xfs_dir2_free_log_bests(args, &freehdr, fbp, findex, findex);
1262 xfs_da_args_t *args, /* operation arguments */
1268 struct xfs_da_geometry *geo = args->geo;
1284 trace_xfs_dir2_leafn_remove(args, index);
1286 dp = args->dp;
1287 tp = args->trans;
1310 xfs_dir3_leaf_log_header(args, bp);
1313 xfs_dir3_leaf_log_ents(args, &leafhdr, bp, index, index);
1325 xfs_dir2_data_make_free(args, dbp, off,
1335 xfs_dir2_data_log_header(args, dbp);
1380 error = xfs_dir2_shrink_inode(args, db, dbp);
1390 else if (!(error == -ENOSPC && args->total == 0))
1397 error = xfs_dir3_data_block_free(args, hdr, free,
1423 xfs_da_args_t *args; /* operation arguments */
1431 args = state->args;
1432 dp = args->dp;
1434 error = xfs_da_grow_inode(args, &blkno);
1441 error = xfs_dir3_leaf_get_buf(args, xfs_dir2_da_to_db(args->geo, blkno),
1461 error = xfs_dir2_leafn_add(oldblk->bp, args, oldblk->index);
1463 error = xfs_dir2_leafn_add(newblk->bp, args, newblk->index);
1500 struct xfs_inode *dp = state->args->dp;
1514 bytes = state->args->geo->leaf_hdr_size + count * sizeof(ents[0]);
1515 if (bytes > (state->args->geo->blksize >> 1)) {
1559 error = xfs_dir3_leafn_read(state->args->trans, dp, blkno, &bp);
1567 bytes = state->args->geo->blksize -
1568 (state->args->geo->blksize >> 2);
1581 xfs_trans_brelse(state->args->trans, bp);
1619 xfs_da_args_t *args; /* operation arguments */
1626 struct xfs_inode *dp = state->args->dp;
1628 args = state->args;
1644 xfs_dir3_leaf_compact(args, &drophdr, drop_blk->bp);
1646 xfs_dir3_leaf_compact(args, &savehdr, save_blk->bp);
1653 xfs_dir3_leafn_moveents(args, drop_blk->bp, &drophdr, dents, 0,
1657 xfs_dir3_leafn_moveents(args, drop_blk->bp, &drophdr, dents, 0,
1665 xfs_dir3_leaf_log_header(args, save_blk->bp);
1666 xfs_dir3_leaf_log_header(args, drop_blk->bp);
1678 struct xfs_da_args *args,
1686 struct xfs_inode *dp = args->dp;
1687 struct xfs_trans *tp = args->trans;
1696 if (args->total == 0)
1700 error = xfs_dir2_grow_inode(args, XFS_DIR2_DATA_SPACE, dbno);
1703 error = xfs_dir3_data_init(args, *dbno, &dbp);
1711 fbno = xfs_dir2_db_to_fdb(args->geo, *dbno);
1713 xfs_dir2_db_to_da(args->geo, fbno), &fbp);
1722 error = xfs_dir2_grow_inode(args, XFS_DIR2_FREE_SPACE, &fbno);
1727 xfs_dir2_db_to_fdb(args->geo, *dbno) !=
1732 (long long)xfs_dir2_db_to_fdb(args->geo, *dbno),
1746 error = xfs_dir3_free_get_buf(args, fbno, &fbp);
1752 hdr->firstdb = (fbno - xfs_dir2_byte_to_db(args->geo,
1754 args->geo->free_max_bests;
1760 *findex = xfs_dir2_db_to_fdindex(args->geo, *dbno);
1764 ASSERT(*findex < args->geo->free_max_bests);
1776 xfs_dir2_free_log_header(args, fbp);
1790 struct xfs_da_args *args,
1798 struct xfs_inode *dp = args->dp;
1799 struct xfs_trans *tp = args->trans;
1845 lastfbno = xfs_dir2_da_to_db(args->geo, (xfs_dablk_t)fo);
1846 firstfbno = xfs_dir2_byte_to_db(args->geo, XFS_DIR2_FREE_OFFSET);
1859 xfs_dir2_db_to_da(args->geo, fbno),
1895 struct xfs_da_args *args, /* operation arguments */
1902 struct xfs_trans *tp = args->trans;
1903 struct xfs_inode *dp = args->dp;
1917 length = xfs_dir2_data_entsize(dp->i_mount, args->namelen);
1918 error = xfs_dir2_node_find_freeblk(args, fblk, &dbno, &fbp, &freehdr,
1927 if (args->op_flags & XFS_DA_OP_JUSTCHECK) {
1940 error = xfs_dir2_node_add_datablk(args, fblk, &dbno, &dbp, &fbp,
1945 xfs_dir2_db_to_da(args->geo, dbno),
1962 error = xfs_dir2_data_use_free(args, dbp, dup, aoff, length,
1971 dep->inumber = cpu_to_be64(args->inumber);
1972 dep->namelen = args->namelen;
1973 memcpy(dep->name, args->name, dep->namelen);
1974 xfs_dir2_data_put_ftype(dp->i_mount, dep, args->filetype);
1977 xfs_dir2_data_log_entry(args, dbp, dep);
1983 xfs_dir2_data_log_header(args, dbp);
1993 xfs_dir2_free_log_bests(args, &freehdr, fbp, findex, findex);
1995 /* Return the data block and offset in args. */
1996 args->blkno = (xfs_dablk_t)dbno;
1997 args->index = be16_to_cpu(*tagp);
2006 xfs_da_args_t *args) /* operation arguments */
2013 trace_xfs_dir2_node_addname(args);
2018 state = xfs_da_state_alloc(args);
2033 rval = xfs_dir2_node_addname_int(args,
2043 rval = xfs_dir2_leafn_add(blk->bp, args, blk->index);
2048 if (!(args->op_flags & XFS_DA_OP_JUSTCHECK))
2054 if (args->total == 0) {
2075 xfs_da_args_t *args) /* operation arguments */
2082 trace_xfs_dir2_node_lookup(args);
2087 state = xfs_da_state_alloc(args);
2095 else if (rval == -ENOENT && args->cmpresult == XFS_CMP_CASE) {
2102 rval = xfs_dir_cilookup_result(args, dep->name, dep->namelen);
2108 xfs_trans_brelse(args->trans, state->path.blk[i].bp);
2115 xfs_trans_brelse(args->trans, state->extrablk.bp);
2127 struct xfs_da_args *args) /* operation arguments */
2134 trace_xfs_dir2_node_removename(args);
2139 state = xfs_da_state_alloc(args);
2159 error = xfs_dir2_leafn_remove(args, blk->bp, blk->index,
2187 xfs_da_args_t *args) /* operation arguments */
2199 trace_xfs_dir2_node_replace(args);
2204 state = xfs_da_state_alloc(args);
2210 inum = args->inumber;
2211 ftype = args->filetype;
2244 xfs_dir2_dataptr_to_off(args->geo,
2252 xfs_dir2_data_log_entry(args, state->extrablk.bp, dep);
2259 xfs_trans_brelse(args->trans, state->extrablk.bp);
2266 xfs_trans_brelse(args->trans, state->path.blk[i].bp);
2279 xfs_da_args_t *args, /* operation arguments */
2290 dp = args->dp;
2291 tp = args->trans;
2320 error = xfs_dir2_shrink_inode(args,
2321 xfs_dir2_da_to_db(args->geo, (xfs_dablk_t)fo), bp);