aboutsummaryrefslogtreecommitdiffstats
path: root/fs/xfs/libxfs/xfs_dir2_leaf.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/xfs/libxfs/xfs_dir2_leaf.c')
-rw-r--r--fs/xfs/libxfs/xfs_dir2_leaf.c37
1 files changed, 17 insertions, 20 deletions
diff --git a/fs/xfs/libxfs/xfs_dir2_leaf.c b/fs/xfs/libxfs/xfs_dir2_leaf.c
index 9a3767818c50..9c2a0a13ed61 100644
--- a/fs/xfs/libxfs/xfs_dir2_leaf.c
+++ b/fs/xfs/libxfs/xfs_dir2_leaf.c
@@ -563,43 +563,40 @@ xfs_dir3_leaf_find_entry(
563 */ 563 */
564int /* error */ 564int /* error */
565xfs_dir2_leaf_addname( 565xfs_dir2_leaf_addname(
566 xfs_da_args_t *args) /* operation arguments */ 566 struct xfs_da_args *args) /* operation arguments */
567{ 567{
568 struct xfs_dir3_icleaf_hdr leafhdr;
569 struct xfs_trans *tp = args->trans;
568 __be16 *bestsp; /* freespace table in leaf */ 570 __be16 *bestsp; /* freespace table in leaf */
569 int compact; /* need to compact leaves */ 571 __be16 *tagp; /* end of data entry */
570 xfs_dir2_data_hdr_t *hdr; /* data block header */
571 struct xfs_buf *dbp; /* data block buffer */ 572 struct xfs_buf *dbp; /* data block buffer */
572 xfs_dir2_data_entry_t *dep; /* data block entry */ 573 struct xfs_buf *lbp; /* leaf's buffer */
573 xfs_inode_t *dp; /* incore directory inode */ 574 struct xfs_dir2_leaf *leaf; /* leaf structure */
574 xfs_dir2_data_unused_t *dup; /* data unused entry */ 575 struct xfs_inode *dp = args->dp; /* incore directory inode */
576 struct xfs_dir2_data_hdr *hdr; /* data block header */
577 struct xfs_dir2_data_entry *dep; /* data block entry */
578 struct xfs_dir2_leaf_entry *lep; /* leaf entry table pointer */
579 struct xfs_dir2_leaf_entry *ents;
580 struct xfs_dir2_data_unused *dup; /* data unused entry */
581 struct xfs_dir2_leaf_tail *ltp; /* leaf tail pointer */
582 struct xfs_dir2_data_free *bf; /* bestfree table */
583 int compact; /* need to compact leaves */
575 int error; /* error return value */ 584 int error; /* error return value */
576 int grown; /* allocated new data block */ 585 int grown; /* allocated new data block */
577 int highstale; /* index of next stale leaf */ 586 int highstale = 0; /* index of next stale leaf */
578 int i; /* temporary, index */ 587 int i; /* temporary, index */
579 int index; /* leaf table position */ 588 int index; /* leaf table position */
580 struct xfs_buf *lbp; /* leaf's buffer */
581 xfs_dir2_leaf_t *leaf; /* leaf structure */
582 int length; /* length of new entry */ 589 int length; /* length of new entry */
583 xfs_dir2_leaf_entry_t *lep; /* leaf entry table pointer */
584 int lfloglow; /* low leaf logging index */ 590 int lfloglow; /* low leaf logging index */
585 int lfloghigh; /* high leaf logging index */ 591 int lfloghigh; /* high leaf logging index */
586 int lowstale; /* index of prev stale leaf */ 592 int lowstale = 0; /* index of prev stale leaf */
587 xfs_dir2_leaf_tail_t *ltp; /* leaf tail pointer */
588 int needbytes; /* leaf block bytes needed */ 593 int needbytes; /* leaf block bytes needed */
589 int needlog; /* need to log data header */ 594 int needlog; /* need to log data header */
590 int needscan; /* need to rescan data free */ 595 int needscan; /* need to rescan data free */
591 __be16 *tagp; /* end of data entry */
592 xfs_trans_t *tp; /* transaction pointer */
593 xfs_dir2_db_t use_block; /* data block number */ 596 xfs_dir2_db_t use_block; /* data block number */
594 struct xfs_dir2_data_free *bf; /* bestfree table */
595 struct xfs_dir2_leaf_entry *ents;
596 struct xfs_dir3_icleaf_hdr leafhdr;
597 597
598 trace_xfs_dir2_leaf_addname(args); 598 trace_xfs_dir2_leaf_addname(args);
599 599
600 dp = args->dp;
601 tp = args->trans;
602
603 error = xfs_dir3_leaf_read(tp, dp, args->geo->leafblk, -1, &lbp); 600 error = xfs_dir3_leaf_read(tp, dp, args->geo->leafblk, -1, &lbp);
604 if (error) 601 if (error)
605 return error; 602 return error;