Lines Matching defs:args
22 static void xfs_dir2_sf_addname_easy(xfs_da_args_t *args,
26 static void xfs_dir2_sf_addname_hard(xfs_da_args_t *args, int objchange,
28 static int xfs_dir2_sf_addname_pick(xfs_da_args_t *args, int objchange,
32 static void xfs_dir2_sf_check(xfs_da_args_t *args);
34 #define xfs_dir2_sf_check(args)
37 static void xfs_dir2_sf_toino4(xfs_da_args_t *args);
38 static void xfs_dir2_sf_toino8(xfs_da_args_t *args);
258 struct xfs_da_args *args, /* operation arguments */
263 struct xfs_inode *dp = args->dp;
269 unsigned int offset = args->geo->data_entry_offset;
272 trace_xfs_dir2_block_to_sf(args);
286 end = xfs_dir3_data_end_offset(args->geo, bp->b_addr);
332 error = xfs_dir2_shrink_inode(args, args->geo->datablk, bp);
350 xfs_dir2_sf_check(args);
352 xfs_trans_log_inode(args->trans, dp, logflags);
365 xfs_da_args_t *args) /* operation arguments */
377 trace_xfs_dir2_sf_addname(args);
379 ASSERT(xfs_dir2_sf_lookup(args) == -ENOENT);
380 dp = args->dp;
390 incr_isize = xfs_dir2_sf_entsize(dp->i_mount, sfp, args->namelen);
396 if (args->inumber > XFS_DIR2_MAX_SHORT_INUM && sfp->i8count == 0) {
411 xfs_dir2_sf_addname_pick(args, objchange, &sfep, &offset)) == 0) {
415 if ((args->op_flags & XFS_DA_OP_JUSTCHECK) || args->total == 0)
420 error = xfs_dir2_sf_to_block(args);
423 return xfs_dir2_block_addname(args);
428 if (args->op_flags & XFS_DA_OP_JUSTCHECK)
434 xfs_dir2_sf_addname_easy(args, sfep, offset, new_isize);
442 xfs_dir2_sf_toino8(args);
443 xfs_dir2_sf_addname_hard(args, objchange, new_isize);
445 xfs_trans_log_inode(args->trans, dp, XFS_ILOG_CORE | XFS_ILOG_DDATA);
458 xfs_da_args_t *args, /* operation arguments */
463 struct xfs_inode *dp = args->dp;
473 xfs_idata_realloc(dp, xfs_dir2_sf_entsize(mp, sfp, args->namelen),
483 sfep->namelen = args->namelen;
485 memcpy(sfep->name, args->name, sfep->namelen);
486 xfs_dir2_sf_put_ino(mp, sfp, sfep, args->inumber);
487 xfs_dir2_sf_put_ftype(mp, sfep, args->filetype);
493 if (args->inumber > XFS_DIR2_MAX_SHORT_INUM)
496 xfs_dir2_sf_check(args);
510 xfs_da_args_t *args, /* operation arguments */
514 struct xfs_inode *dp = args->dp;
541 for (offset = args->geo->data_first_offset,
543 add_datasize = xfs_dir2_data_entsize(mp, args->namelen),
573 sfep->namelen = args->namelen;
575 memcpy(sfep->name, args->name, sfep->namelen);
576 xfs_dir2_sf_put_ino(mp, sfp, sfep, args->inumber);
577 xfs_dir2_sf_put_ftype(mp, sfep, args->filetype);
579 if (args->inumber > XFS_DIR2_MAX_SHORT_INUM && !objchange)
590 xfs_dir2_sf_check(args);
602 xfs_da_args_t *args, /* operation arguments */
607 struct xfs_inode *dp = args->dp;
618 size = xfs_dir2_data_entsize(mp, args->namelen);
619 offset = args->geo->data_first_offset;
646 if (used + (holefit ? 0 : size) > args->geo->blksize)
656 if (used + size > args->geo->blksize)
672 xfs_da_args_t *args) /* operation arguments */
674 struct xfs_inode *dp = args->dp;
684 offset = args->geo->data_first_offset;
703 (uint)sizeof(xfs_dir2_block_tail_t) <= args->geo->blksize);
811 xfs_da_args_t *args, /* operation arguments */
819 trace_xfs_dir2_sf_create(args);
821 dp = args->dp;
832 xfs_trans_log_inode(args->trans, dp, XFS_ILOG_CORE);
854 xfs_dir2_sf_check(args);
855 xfs_trans_log_inode(args->trans, dp, XFS_ILOG_CORE | XFS_ILOG_DDATA);
865 xfs_da_args_t *args) /* operation arguments */
867 struct xfs_inode *dp = args->dp;
876 trace_xfs_dir2_sf_lookup(args);
878 xfs_dir2_sf_check(args);
889 if (args->namelen == 1 && args->name[0] == '.') {
890 args->inumber = dp->i_ino;
891 args->cmpresult = XFS_CMP_EXACT;
892 args->filetype = XFS_DIR3_FT_DIR;
898 if (args->namelen == 2 &&
899 args->name[0] == '.' && args->name[1] == '.') {
900 args->inumber = xfs_dir2_sf_get_parent_ino(sfp);
901 args->cmpresult = XFS_CMP_EXACT;
902 args->filetype = XFS_DIR3_FT_DIR;
916 cmp = xfs_dir2_compname(args, sfep->name, sfep->namelen);
917 if (cmp != XFS_CMP_DIFFERENT && cmp != args->cmpresult) {
918 args->cmpresult = cmp;
919 args->inumber = xfs_dir2_sf_get_ino(mp, sfp, sfep);
920 args->filetype = xfs_dir2_sf_get_ftype(mp, sfep);
926 ASSERT(args->op_flags & XFS_DA_OP_OKNOENT);
934 error = xfs_dir_cilookup_result(args, ci_sfep->name, ci_sfep->namelen);
943 xfs_da_args_t *args)
945 struct xfs_inode *dp = args->dp;
955 trace_xfs_dir2_sf_removename(args);
970 if (xfs_da_compname(args, sfep->name, sfep->namelen) ==
973 args->inumber);
986 entsize = xfs_dir2_sf_entsize(mp, sfp, args->namelen);
1007 if (args->inumber > XFS_DIR2_MAX_SHORT_INUM) {
1009 xfs_dir2_sf_toino4(args);
1013 xfs_dir2_sf_check(args);
1014 xfs_trans_log_inode(args->trans, dp, XFS_ILOG_CORE | XFS_ILOG_DDATA);
1044 xfs_da_args_t *args) /* operation arguments */
1046 struct xfs_inode *dp = args->dp;
1054 trace_xfs_dir2_sf_replace(args);
1066 if (args->inumber > XFS_DIR2_MAX_SHORT_INUM && sfp->i8count == 0) {
1072 if (xfs_dir2_sf_replace_needblock(dp, args->inumber)) {
1073 error = xfs_dir2_sf_to_block(args);
1076 return xfs_dir2_block_replace(args);
1081 xfs_dir2_sf_toino8(args);
1087 ASSERT(args->namelen != 1 || args->name[0] != '.');
1091 if (args->namelen == 2 &&
1092 args->name[0] == '.' && args->name[1] == '.') {
1094 ASSERT(args->inumber != ino);
1095 xfs_dir2_sf_put_parent_ino(sfp, args->inumber);
1103 if (xfs_da_compname(args, sfep->name, sfep->namelen) ==
1106 ASSERT(args->inumber != ino);
1108 args->inumber);
1109 xfs_dir2_sf_put_ftype(mp, sfep, args->filetype);
1117 ASSERT(args->op_flags & XFS_DA_OP_OKNOENT);
1119 xfs_dir2_sf_toino4(args);
1127 args->inumber <= XFS_DIR2_MAX_SHORT_INUM) {
1132 xfs_dir2_sf_toino4(args);
1140 args->inumber > XFS_DIR2_MAX_SHORT_INUM) {
1149 xfs_dir2_sf_check(args);
1150 xfs_trans_log_inode(args->trans, dp, XFS_ILOG_DDATA);
1160 xfs_da_args_t *args) /* operation arguments */
1162 struct xfs_inode *dp = args->dp;
1173 trace_xfs_dir2_sf_toino4(args);
1223 xfs_trans_log_inode(args->trans, dp, XFS_ILOG_CORE | XFS_ILOG_DDATA);
1233 xfs_da_args_t *args) /* operation arguments */
1235 struct xfs_inode *dp = args->dp;
1246 trace_xfs_dir2_sf_toino8(args);
1296 xfs_trans_log_inode(args->trans, dp, XFS_ILOG_CORE | XFS_ILOG_DDATA);