diff options
Diffstat (limited to 'fs/xfs/xfs_dir2_sf.c')
| -rw-r--r-- | fs/xfs/xfs_dir2_sf.c | 204 |
1 files changed, 102 insertions, 102 deletions
diff --git a/fs/xfs/xfs_dir2_sf.c b/fs/xfs/xfs_dir2_sf.c index 0cd77b17bf92..38fc4f22b76d 100644 --- a/fs/xfs/xfs_dir2_sf.c +++ b/fs/xfs/xfs_dir2_sf.c | |||
| @@ -89,8 +89,8 @@ xfs_dir2_block_sfsize( | |||
| 89 | mp = dp->i_mount; | 89 | mp = dp->i_mount; |
| 90 | 90 | ||
| 91 | count = i8count = namelen = 0; | 91 | count = i8count = namelen = 0; |
| 92 | btp = XFS_DIR2_BLOCK_TAIL_P(mp, block); | 92 | btp = xfs_dir2_block_tail_p(mp, block); |
| 93 | blp = XFS_DIR2_BLOCK_LEAF_P(btp); | 93 | blp = xfs_dir2_block_leaf_p(btp); |
| 94 | 94 | ||
| 95 | /* | 95 | /* |
| 96 | * Iterate over the block's data entries by using the leaf pointers. | 96 | * Iterate over the block's data entries by using the leaf pointers. |
| @@ -102,7 +102,7 @@ xfs_dir2_block_sfsize( | |||
| 102 | * Calculate the pointer to the entry at hand. | 102 | * Calculate the pointer to the entry at hand. |
| 103 | */ | 103 | */ |
| 104 | dep = (xfs_dir2_data_entry_t *) | 104 | dep = (xfs_dir2_data_entry_t *) |
| 105 | ((char *)block + XFS_DIR2_DATAPTR_TO_OFF(mp, addr)); | 105 | ((char *)block + xfs_dir2_dataptr_to_off(mp, addr)); |
| 106 | /* | 106 | /* |
| 107 | * Detect . and .., so we can special-case them. | 107 | * Detect . and .., so we can special-case them. |
| 108 | * . is not included in sf directories. | 108 | * . is not included in sf directories. |
| @@ -124,7 +124,7 @@ xfs_dir2_block_sfsize( | |||
| 124 | /* | 124 | /* |
| 125 | * Calculate the new size, see if we should give up yet. | 125 | * Calculate the new size, see if we should give up yet. |
| 126 | */ | 126 | */ |
| 127 | size = XFS_DIR2_SF_HDR_SIZE(i8count) + /* header */ | 127 | size = xfs_dir2_sf_hdr_size(i8count) + /* header */ |
| 128 | count + /* namelen */ | 128 | count + /* namelen */ |
| 129 | count * (uint)sizeof(xfs_dir2_sf_off_t) + /* offset */ | 129 | count * (uint)sizeof(xfs_dir2_sf_off_t) + /* offset */ |
| 130 | namelen + /* name */ | 130 | namelen + /* name */ |
| @@ -139,7 +139,7 @@ xfs_dir2_block_sfsize( | |||
| 139 | */ | 139 | */ |
| 140 | sfhp->count = count; | 140 | sfhp->count = count; |
| 141 | sfhp->i8count = i8count; | 141 | sfhp->i8count = i8count; |
| 142 | XFS_DIR2_SF_PUT_INUMBER((xfs_dir2_sf_t *)sfhp, &parent, &sfhp->parent); | 142 | xfs_dir2_sf_put_inumber((xfs_dir2_sf_t *)sfhp, &parent, &sfhp->parent); |
| 143 | return size; | 143 | return size; |
| 144 | } | 144 | } |
| 145 | 145 | ||
| @@ -199,15 +199,15 @@ xfs_dir2_block_to_sf( | |||
| 199 | * Copy the header into the newly allocate local space. | 199 | * Copy the header into the newly allocate local space. |
| 200 | */ | 200 | */ |
| 201 | sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; | 201 | sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; |
| 202 | memcpy(sfp, sfhp, XFS_DIR2_SF_HDR_SIZE(sfhp->i8count)); | 202 | memcpy(sfp, sfhp, xfs_dir2_sf_hdr_size(sfhp->i8count)); |
| 203 | dp->i_d.di_size = size; | 203 | dp->i_d.di_size = size; |
| 204 | /* | 204 | /* |
| 205 | * Set up to loop over the block's entries. | 205 | * Set up to loop over the block's entries. |
| 206 | */ | 206 | */ |
| 207 | btp = XFS_DIR2_BLOCK_TAIL_P(mp, block); | 207 | btp = xfs_dir2_block_tail_p(mp, block); |
| 208 | ptr = (char *)block->u; | 208 | ptr = (char *)block->u; |
| 209 | endptr = (char *)XFS_DIR2_BLOCK_LEAF_P(btp); | 209 | endptr = (char *)xfs_dir2_block_leaf_p(btp); |
| 210 | sfep = XFS_DIR2_SF_FIRSTENTRY(sfp); | 210 | sfep = xfs_dir2_sf_firstentry(sfp); |
| 211 | /* | 211 | /* |
| 212 | * Loop over the active and unused entries. | 212 | * Loop over the active and unused entries. |
| 213 | * Stop when we reach the leaf/tail portion of the block. | 213 | * Stop when we reach the leaf/tail portion of the block. |
| @@ -233,22 +233,22 @@ xfs_dir2_block_to_sf( | |||
| 233 | else if (dep->namelen == 2 && | 233 | else if (dep->namelen == 2 && |
| 234 | dep->name[0] == '.' && dep->name[1] == '.') | 234 | dep->name[0] == '.' && dep->name[1] == '.') |
| 235 | ASSERT(be64_to_cpu(dep->inumber) == | 235 | ASSERT(be64_to_cpu(dep->inumber) == |
| 236 | XFS_DIR2_SF_GET_INUMBER(sfp, &sfp->hdr.parent)); | 236 | xfs_dir2_sf_get_inumber(sfp, &sfp->hdr.parent)); |
| 237 | /* | 237 | /* |
| 238 | * Normal entry, copy it into shortform. | 238 | * Normal entry, copy it into shortform. |
| 239 | */ | 239 | */ |
| 240 | else { | 240 | else { |
| 241 | sfep->namelen = dep->namelen; | 241 | sfep->namelen = dep->namelen; |
| 242 | XFS_DIR2_SF_PUT_OFFSET(sfep, | 242 | xfs_dir2_sf_put_offset(sfep, |
| 243 | (xfs_dir2_data_aoff_t) | 243 | (xfs_dir2_data_aoff_t) |
| 244 | ((char *)dep - (char *)block)); | 244 | ((char *)dep - (char *)block)); |
| 245 | memcpy(sfep->name, dep->name, dep->namelen); | 245 | memcpy(sfep->name, dep->name, dep->namelen); |
| 246 | temp = be64_to_cpu(dep->inumber); | 246 | temp = be64_to_cpu(dep->inumber); |
| 247 | XFS_DIR2_SF_PUT_INUMBER(sfp, &temp, | 247 | xfs_dir2_sf_put_inumber(sfp, &temp, |
| 248 | XFS_DIR2_SF_INUMBERP(sfep)); | 248 | xfs_dir2_sf_inumberp(sfep)); |
| 249 | sfep = XFS_DIR2_SF_NEXTENTRY(sfp, sfep); | 249 | sfep = xfs_dir2_sf_nextentry(sfp, sfep); |
| 250 | } | 250 | } |
| 251 | ptr += XFS_DIR2_DATA_ENTSIZE(dep->namelen); | 251 | ptr += xfs_dir2_data_entsize(dep->namelen); |
| 252 | } | 252 | } |
| 253 | ASSERT((char *)sfep - (char *)sfp == size); | 253 | ASSERT((char *)sfep - (char *)sfp == size); |
| 254 | xfs_dir2_sf_check(args); | 254 | xfs_dir2_sf_check(args); |
| @@ -294,11 +294,11 @@ xfs_dir2_sf_addname( | |||
| 294 | ASSERT(dp->i_df.if_bytes == dp->i_d.di_size); | 294 | ASSERT(dp->i_df.if_bytes == dp->i_d.di_size); |
| 295 | ASSERT(dp->i_df.if_u1.if_data != NULL); | 295 | ASSERT(dp->i_df.if_u1.if_data != NULL); |
| 296 | sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; | 296 | sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; |
| 297 | ASSERT(dp->i_d.di_size >= XFS_DIR2_SF_HDR_SIZE(sfp->hdr.i8count)); | 297 | ASSERT(dp->i_d.di_size >= xfs_dir2_sf_hdr_size(sfp->hdr.i8count)); |
| 298 | /* | 298 | /* |
| 299 | * Compute entry (and change in) size. | 299 | * Compute entry (and change in) size. |
| 300 | */ | 300 | */ |
| 301 | add_entsize = XFS_DIR2_SF_ENTSIZE_BYNAME(sfp, args->namelen); | 301 | add_entsize = xfs_dir2_sf_entsize_byname(sfp, args->namelen); |
| 302 | incr_isize = add_entsize; | 302 | incr_isize = add_entsize; |
| 303 | objchange = 0; | 303 | objchange = 0; |
| 304 | #if XFS_BIG_INUMS | 304 | #if XFS_BIG_INUMS |
| @@ -392,7 +392,7 @@ xfs_dir2_sf_addname_easy( | |||
| 392 | /* | 392 | /* |
| 393 | * Grow the in-inode space. | 393 | * Grow the in-inode space. |
| 394 | */ | 394 | */ |
| 395 | xfs_idata_realloc(dp, XFS_DIR2_SF_ENTSIZE_BYNAME(sfp, args->namelen), | 395 | xfs_idata_realloc(dp, xfs_dir2_sf_entsize_byname(sfp, args->namelen), |
| 396 | XFS_DATA_FORK); | 396 | XFS_DATA_FORK); |
| 397 | /* | 397 | /* |
| 398 | * Need to set up again due to realloc of the inode data. | 398 | * Need to set up again due to realloc of the inode data. |
| @@ -403,10 +403,10 @@ xfs_dir2_sf_addname_easy( | |||
| 403 | * Fill in the new entry. | 403 | * Fill in the new entry. |
| 404 | */ | 404 | */ |
| 405 | sfep->namelen = args->namelen; | 405 | sfep->namelen = args->namelen; |
| 406 | XFS_DIR2_SF_PUT_OFFSET(sfep, offset); | 406 | xfs_dir2_sf_put_offset(sfep, offset); |
| 407 | memcpy(sfep->name, args->name, sfep->namelen); | 407 | memcpy(sfep->name, args->name, sfep->namelen); |
| 408 | XFS_DIR2_SF_PUT_INUMBER(sfp, &args->inumber, | 408 | xfs_dir2_sf_put_inumber(sfp, &args->inumber, |
| 409 | XFS_DIR2_SF_INUMBERP(sfep)); | 409 | xfs_dir2_sf_inumberp(sfep)); |
| 410 | /* | 410 | /* |
| 411 | * Update the header and inode. | 411 | * Update the header and inode. |
| 412 | */ | 412 | */ |
| @@ -463,14 +463,14 @@ xfs_dir2_sf_addname_hard( | |||
| 463 | * If it's going to end up at the end then oldsfep will point there. | 463 | * If it's going to end up at the end then oldsfep will point there. |
| 464 | */ | 464 | */ |
| 465 | for (offset = XFS_DIR2_DATA_FIRST_OFFSET, | 465 | for (offset = XFS_DIR2_DATA_FIRST_OFFSET, |
| 466 | oldsfep = XFS_DIR2_SF_FIRSTENTRY(oldsfp), | 466 | oldsfep = xfs_dir2_sf_firstentry(oldsfp), |
| 467 | add_datasize = XFS_DIR2_DATA_ENTSIZE(args->namelen), | 467 | add_datasize = xfs_dir2_data_entsize(args->namelen), |
| 468 | eof = (char *)oldsfep == &buf[old_isize]; | 468 | eof = (char *)oldsfep == &buf[old_isize]; |
| 469 | !eof; | 469 | !eof; |
| 470 | offset = new_offset + XFS_DIR2_DATA_ENTSIZE(oldsfep->namelen), | 470 | offset = new_offset + xfs_dir2_data_entsize(oldsfep->namelen), |
| 471 | oldsfep = XFS_DIR2_SF_NEXTENTRY(oldsfp, oldsfep), | 471 | oldsfep = xfs_dir2_sf_nextentry(oldsfp, oldsfep), |
| 472 | eof = (char *)oldsfep == &buf[old_isize]) { | 472 | eof = (char *)oldsfep == &buf[old_isize]) { |
| 473 | new_offset = XFS_DIR2_SF_GET_OFFSET(oldsfep); | 473 | new_offset = xfs_dir2_sf_get_offset(oldsfep); |
| 474 | if (offset + add_datasize <= new_offset) | 474 | if (offset + add_datasize <= new_offset) |
| 475 | break; | 475 | break; |
| 476 | } | 476 | } |
| @@ -495,10 +495,10 @@ xfs_dir2_sf_addname_hard( | |||
| 495 | * Fill in the new entry, and update the header counts. | 495 | * Fill in the new entry, and update the header counts. |
| 496 | */ | 496 | */ |
| 497 | sfep->namelen = args->namelen; | 497 | sfep->namelen = args->namelen; |
| 498 | XFS_DIR2_SF_PUT_OFFSET(sfep, offset); | 498 | xfs_dir2_sf_put_offset(sfep, offset); |
| 499 | memcpy(sfep->name, args->name, sfep->namelen); | 499 | memcpy(sfep->name, args->name, sfep->namelen); |
| 500 | XFS_DIR2_SF_PUT_INUMBER(sfp, &args->inumber, | 500 | xfs_dir2_sf_put_inumber(sfp, &args->inumber, |
| 501 | XFS_DIR2_SF_INUMBERP(sfep)); | 501 | xfs_dir2_sf_inumberp(sfep)); |
| 502 | sfp->hdr.count++; | 502 | sfp->hdr.count++; |
| 503 | #if XFS_BIG_INUMS | 503 | #if XFS_BIG_INUMS |
| 504 | if (args->inumber > XFS_DIR2_MAX_SHORT_INUM && !objchange) | 504 | if (args->inumber > XFS_DIR2_MAX_SHORT_INUM && !objchange) |
| @@ -508,7 +508,7 @@ xfs_dir2_sf_addname_hard( | |||
| 508 | * If there's more left to copy, do that. | 508 | * If there's more left to copy, do that. |
| 509 | */ | 509 | */ |
| 510 | if (!eof) { | 510 | if (!eof) { |
| 511 | sfep = XFS_DIR2_SF_NEXTENTRY(sfp, sfep); | 511 | sfep = xfs_dir2_sf_nextentry(sfp, sfep); |
| 512 | memcpy(sfep, oldsfep, old_isize - nbytes); | 512 | memcpy(sfep, oldsfep, old_isize - nbytes); |
| 513 | } | 513 | } |
| 514 | kmem_free(buf, old_isize); | 514 | kmem_free(buf, old_isize); |
| @@ -544,9 +544,9 @@ xfs_dir2_sf_addname_pick( | |||
| 544 | mp = dp->i_mount; | 544 | mp = dp->i_mount; |
| 545 | 545 | ||
| 546 | sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; | 546 | sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; |
| 547 | size = XFS_DIR2_DATA_ENTSIZE(args->namelen); | 547 | size = xfs_dir2_data_entsize(args->namelen); |
| 548 | offset = XFS_DIR2_DATA_FIRST_OFFSET; | 548 | offset = XFS_DIR2_DATA_FIRST_OFFSET; |
| 549 | sfep = XFS_DIR2_SF_FIRSTENTRY(sfp); | 549 | sfep = xfs_dir2_sf_firstentry(sfp); |
| 550 | holefit = 0; | 550 | holefit = 0; |
| 551 | /* | 551 | /* |
| 552 | * Loop over sf entries. | 552 | * Loop over sf entries. |
| @@ -555,10 +555,10 @@ xfs_dir2_sf_addname_pick( | |||
| 555 | */ | 555 | */ |
| 556 | for (i = 0; i < sfp->hdr.count; i++) { | 556 | for (i = 0; i < sfp->hdr.count; i++) { |
| 557 | if (!holefit) | 557 | if (!holefit) |
| 558 | holefit = offset + size <= XFS_DIR2_SF_GET_OFFSET(sfep); | 558 | holefit = offset + size <= xfs_dir2_sf_get_offset(sfep); |
| 559 | offset = XFS_DIR2_SF_GET_OFFSET(sfep) + | 559 | offset = xfs_dir2_sf_get_offset(sfep) + |
| 560 | XFS_DIR2_DATA_ENTSIZE(sfep->namelen); | 560 | xfs_dir2_data_entsize(sfep->namelen); |
| 561 | sfep = XFS_DIR2_SF_NEXTENTRY(sfp, sfep); | 561 | sfep = xfs_dir2_sf_nextentry(sfp, sfep); |
| 562 | } | 562 | } |
| 563 | /* | 563 | /* |
| 564 | * Calculate data bytes used excluding the new entry, if this | 564 | * Calculate data bytes used excluding the new entry, if this |
| @@ -617,18 +617,18 @@ xfs_dir2_sf_check( | |||
| 617 | 617 | ||
| 618 | sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; | 618 | sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; |
| 619 | offset = XFS_DIR2_DATA_FIRST_OFFSET; | 619 | offset = XFS_DIR2_DATA_FIRST_OFFSET; |
| 620 | ino = XFS_DIR2_SF_GET_INUMBER(sfp, &sfp->hdr.parent); | 620 | ino = xfs_dir2_sf_get_inumber(sfp, &sfp->hdr.parent); |
| 621 | i8count = ino > XFS_DIR2_MAX_SHORT_INUM; | 621 | i8count = ino > XFS_DIR2_MAX_SHORT_INUM; |
| 622 | 622 | ||
| 623 | for (i = 0, sfep = XFS_DIR2_SF_FIRSTENTRY(sfp); | 623 | for (i = 0, sfep = xfs_dir2_sf_firstentry(sfp); |
| 624 | i < sfp->hdr.count; | 624 | i < sfp->hdr.count; |
| 625 | i++, sfep = XFS_DIR2_SF_NEXTENTRY(sfp, sfep)) { | 625 | i++, sfep = xfs_dir2_sf_nextentry(sfp, sfep)) { |
| 626 | ASSERT(XFS_DIR2_SF_GET_OFFSET(sfep) >= offset); | 626 | ASSERT(xfs_dir2_sf_get_offset(sfep) >= offset); |
| 627 | ino = XFS_DIR2_SF_GET_INUMBER(sfp, XFS_DIR2_SF_INUMBERP(sfep)); | 627 | ino = xfs_dir2_sf_get_inumber(sfp, xfs_dir2_sf_inumberp(sfep)); |
| 628 | i8count += ino > XFS_DIR2_MAX_SHORT_INUM; | 628 | i8count += ino > XFS_DIR2_MAX_SHORT_INUM; |
| 629 | offset = | 629 | offset = |
| 630 | XFS_DIR2_SF_GET_OFFSET(sfep) + | 630 | xfs_dir2_sf_get_offset(sfep) + |
| 631 | XFS_DIR2_DATA_ENTSIZE(sfep->namelen); | 631 | xfs_dir2_data_entsize(sfep->namelen); |
| 632 | } | 632 | } |
| 633 | ASSERT(i8count == sfp->hdr.i8count); | 633 | ASSERT(i8count == sfp->hdr.i8count); |
| 634 | ASSERT(XFS_BIG_INUMS || i8count == 0); | 634 | ASSERT(XFS_BIG_INUMS || i8count == 0); |
| @@ -671,7 +671,7 @@ xfs_dir2_sf_create( | |||
| 671 | ASSERT(dp->i_df.if_flags & XFS_IFINLINE); | 671 | ASSERT(dp->i_df.if_flags & XFS_IFINLINE); |
| 672 | ASSERT(dp->i_df.if_bytes == 0); | 672 | ASSERT(dp->i_df.if_bytes == 0); |
| 673 | i8count = pino > XFS_DIR2_MAX_SHORT_INUM; | 673 | i8count = pino > XFS_DIR2_MAX_SHORT_INUM; |
| 674 | size = XFS_DIR2_SF_HDR_SIZE(i8count); | 674 | size = xfs_dir2_sf_hdr_size(i8count); |
| 675 | /* | 675 | /* |
| 676 | * Make a buffer for the data. | 676 | * Make a buffer for the data. |
| 677 | */ | 677 | */ |
| @@ -684,7 +684,7 @@ xfs_dir2_sf_create( | |||
| 684 | /* | 684 | /* |
| 685 | * Now can put in the inode number, since i8count is set. | 685 | * Now can put in the inode number, since i8count is set. |
| 686 | */ | 686 | */ |
| 687 | XFS_DIR2_SF_PUT_INUMBER(sfp, &pino, &sfp->hdr.parent); | 687 | xfs_dir2_sf_put_inumber(sfp, &pino, &sfp->hdr.parent); |
| 688 | sfp->hdr.count = 0; | 688 | sfp->hdr.count = 0; |
| 689 | dp->i_d.di_size = size; | 689 | dp->i_d.di_size = size; |
| 690 | xfs_dir2_sf_check(args); | 690 | xfs_dir2_sf_check(args); |
| @@ -727,12 +727,12 @@ xfs_dir2_sf_getdents( | |||
| 727 | 727 | ||
| 728 | sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; | 728 | sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; |
| 729 | 729 | ||
| 730 | ASSERT(dp->i_d.di_size >= XFS_DIR2_SF_HDR_SIZE(sfp->hdr.i8count)); | 730 | ASSERT(dp->i_d.di_size >= xfs_dir2_sf_hdr_size(sfp->hdr.i8count)); |
| 731 | 731 | ||
| 732 | /* | 732 | /* |
| 733 | * If the block number in the offset is out of range, we're done. | 733 | * If the block number in the offset is out of range, we're done. |
| 734 | */ | 734 | */ |
| 735 | if (XFS_DIR2_DATAPTR_TO_DB(mp, dir_offset) > mp->m_dirdatablk) { | 735 | if (xfs_dir2_dataptr_to_db(mp, dir_offset) > mp->m_dirdatablk) { |
| 736 | *eofp = 1; | 736 | *eofp = 1; |
| 737 | return 0; | 737 | return 0; |
| 738 | } | 738 | } |
| @@ -747,9 +747,9 @@ xfs_dir2_sf_getdents( | |||
| 747 | * Put . entry unless we're starting past it. | 747 | * Put . entry unless we're starting past it. |
| 748 | */ | 748 | */ |
| 749 | if (dir_offset <= | 749 | if (dir_offset <= |
| 750 | XFS_DIR2_DB_OFF_TO_DATAPTR(mp, mp->m_dirdatablk, | 750 | xfs_dir2_db_off_to_dataptr(mp, mp->m_dirdatablk, |
| 751 | XFS_DIR2_DATA_DOT_OFFSET)) { | 751 | XFS_DIR2_DATA_DOT_OFFSET)) { |
| 752 | p.cook = XFS_DIR2_DB_OFF_TO_DATAPTR(mp, 0, | 752 | p.cook = xfs_dir2_db_off_to_dataptr(mp, 0, |
| 753 | XFS_DIR2_DATA_DOTDOT_OFFSET); | 753 | XFS_DIR2_DATA_DOTDOT_OFFSET); |
| 754 | p.ino = dp->i_ino; | 754 | p.ino = dp->i_ino; |
| 755 | #if XFS_BIG_INUMS | 755 | #if XFS_BIG_INUMS |
| @@ -762,7 +762,7 @@ xfs_dir2_sf_getdents( | |||
| 762 | 762 | ||
| 763 | if (!p.done) { | 763 | if (!p.done) { |
| 764 | uio->uio_offset = | 764 | uio->uio_offset = |
| 765 | XFS_DIR2_DB_OFF_TO_DATAPTR(mp, mp->m_dirdatablk, | 765 | xfs_dir2_db_off_to_dataptr(mp, mp->m_dirdatablk, |
| 766 | XFS_DIR2_DATA_DOT_OFFSET); | 766 | XFS_DIR2_DATA_DOT_OFFSET); |
| 767 | return error; | 767 | return error; |
| 768 | } | 768 | } |
| @@ -772,11 +772,11 @@ xfs_dir2_sf_getdents( | |||
| 772 | * Put .. entry unless we're starting past it. | 772 | * Put .. entry unless we're starting past it. |
| 773 | */ | 773 | */ |
| 774 | if (dir_offset <= | 774 | if (dir_offset <= |
| 775 | XFS_DIR2_DB_OFF_TO_DATAPTR(mp, mp->m_dirdatablk, | 775 | xfs_dir2_db_off_to_dataptr(mp, mp->m_dirdatablk, |
| 776 | XFS_DIR2_DATA_DOTDOT_OFFSET)) { | 776 | XFS_DIR2_DATA_DOTDOT_OFFSET)) { |
| 777 | p.cook = XFS_DIR2_DB_OFF_TO_DATAPTR(mp, mp->m_dirdatablk, | 777 | p.cook = xfs_dir2_db_off_to_dataptr(mp, mp->m_dirdatablk, |
| 778 | XFS_DIR2_DATA_FIRST_OFFSET); | 778 | XFS_DIR2_DATA_FIRST_OFFSET); |
| 779 | p.ino = XFS_DIR2_SF_GET_INUMBER(sfp, &sfp->hdr.parent); | 779 | p.ino = xfs_dir2_sf_get_inumber(sfp, &sfp->hdr.parent); |
| 780 | #if XFS_BIG_INUMS | 780 | #if XFS_BIG_INUMS |
| 781 | p.ino += mp->m_inoadd; | 781 | p.ino += mp->m_inoadd; |
| 782 | #endif | 782 | #endif |
| @@ -787,7 +787,7 @@ xfs_dir2_sf_getdents( | |||
| 787 | 787 | ||
| 788 | if (!p.done) { | 788 | if (!p.done) { |
| 789 | uio->uio_offset = | 789 | uio->uio_offset = |
| 790 | XFS_DIR2_DB_OFF_TO_DATAPTR(mp, mp->m_dirdatablk, | 790 | xfs_dir2_db_off_to_dataptr(mp, mp->m_dirdatablk, |
| 791 | XFS_DIR2_DATA_DOTDOT_OFFSET); | 791 | XFS_DIR2_DATA_DOTDOT_OFFSET); |
| 792 | return error; | 792 | return error; |
| 793 | } | 793 | } |
| @@ -796,23 +796,23 @@ xfs_dir2_sf_getdents( | |||
| 796 | /* | 796 | /* |
| 797 | * Loop while there are more entries and put'ing works. | 797 | * Loop while there are more entries and put'ing works. |
| 798 | */ | 798 | */ |
| 799 | for (i = 0, sfep = XFS_DIR2_SF_FIRSTENTRY(sfp); | 799 | for (i = 0, sfep = xfs_dir2_sf_firstentry(sfp); |
| 800 | i < sfp->hdr.count; | 800 | i < sfp->hdr.count; |
| 801 | i++, sfep = XFS_DIR2_SF_NEXTENTRY(sfp, sfep)) { | 801 | i++, sfep = xfs_dir2_sf_nextentry(sfp, sfep)) { |
| 802 | 802 | ||
| 803 | off = XFS_DIR2_DB_OFF_TO_DATAPTR(mp, mp->m_dirdatablk, | 803 | off = xfs_dir2_db_off_to_dataptr(mp, mp->m_dirdatablk, |
| 804 | XFS_DIR2_SF_GET_OFFSET(sfep)); | 804 | xfs_dir2_sf_get_offset(sfep)); |
| 805 | 805 | ||
| 806 | if (dir_offset > off) | 806 | if (dir_offset > off) |
| 807 | continue; | 807 | continue; |
| 808 | 808 | ||
| 809 | p.namelen = sfep->namelen; | 809 | p.namelen = sfep->namelen; |
| 810 | 810 | ||
| 811 | p.cook = XFS_DIR2_DB_OFF_TO_DATAPTR(mp, mp->m_dirdatablk, | 811 | p.cook = xfs_dir2_db_off_to_dataptr(mp, mp->m_dirdatablk, |
| 812 | XFS_DIR2_SF_GET_OFFSET(sfep) + | 812 | xfs_dir2_sf_get_offset(sfep) + |
| 813 | XFS_DIR2_DATA_ENTSIZE(p.namelen)); | 813 | xfs_dir2_data_entsize(p.namelen)); |
| 814 | 814 | ||
| 815 | p.ino = XFS_DIR2_SF_GET_INUMBER(sfp, XFS_DIR2_SF_INUMBERP(sfep)); | 815 | p.ino = xfs_dir2_sf_get_inumber(sfp, xfs_dir2_sf_inumberp(sfep)); |
| 816 | #if XFS_BIG_INUMS | 816 | #if XFS_BIG_INUMS |
| 817 | p.ino += mp->m_inoadd; | 817 | p.ino += mp->m_inoadd; |
| 818 | #endif | 818 | #endif |
| @@ -832,7 +832,7 @@ xfs_dir2_sf_getdents( | |||
| 832 | *eofp = 1; | 832 | *eofp = 1; |
| 833 | 833 | ||
| 834 | uio->uio_offset = | 834 | uio->uio_offset = |
| 835 | XFS_DIR2_DB_OFF_TO_DATAPTR(mp, mp->m_dirdatablk + 1, 0); | 835 | xfs_dir2_db_off_to_dataptr(mp, mp->m_dirdatablk + 1, 0); |
| 836 | 836 | ||
| 837 | return 0; | 837 | return 0; |
| 838 | } | 838 | } |
| @@ -865,7 +865,7 @@ xfs_dir2_sf_lookup( | |||
| 865 | ASSERT(dp->i_df.if_bytes == dp->i_d.di_size); | 865 | ASSERT(dp->i_df.if_bytes == dp->i_d.di_size); |
| 866 | ASSERT(dp->i_df.if_u1.if_data != NULL); | 866 | ASSERT(dp->i_df.if_u1.if_data != NULL); |
| 867 | sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; | 867 | sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; |
| 868 | ASSERT(dp->i_d.di_size >= XFS_DIR2_SF_HDR_SIZE(sfp->hdr.i8count)); | 868 | ASSERT(dp->i_d.di_size >= xfs_dir2_sf_hdr_size(sfp->hdr.i8count)); |
| 869 | /* | 869 | /* |
| 870 | * Special case for . | 870 | * Special case for . |
| 871 | */ | 871 | */ |
| @@ -878,21 +878,21 @@ xfs_dir2_sf_lookup( | |||
| 878 | */ | 878 | */ |
| 879 | if (args->namelen == 2 && | 879 | if (args->namelen == 2 && |
| 880 | args->name[0] == '.' && args->name[1] == '.') { | 880 | args->name[0] == '.' && args->name[1] == '.') { |
| 881 | args->inumber = XFS_DIR2_SF_GET_INUMBER(sfp, &sfp->hdr.parent); | 881 | args->inumber = xfs_dir2_sf_get_inumber(sfp, &sfp->hdr.parent); |
| 882 | return XFS_ERROR(EEXIST); | 882 | return XFS_ERROR(EEXIST); |
| 883 | } | 883 | } |
| 884 | /* | 884 | /* |
| 885 | * Loop over all the entries trying to match ours. | 885 | * Loop over all the entries trying to match ours. |
| 886 | */ | 886 | */ |
| 887 | for (i = 0, sfep = XFS_DIR2_SF_FIRSTENTRY(sfp); | 887 | for (i = 0, sfep = xfs_dir2_sf_firstentry(sfp); |
| 888 | i < sfp->hdr.count; | 888 | i < sfp->hdr.count; |
| 889 | i++, sfep = XFS_DIR2_SF_NEXTENTRY(sfp, sfep)) { | 889 | i++, sfep = xfs_dir2_sf_nextentry(sfp, sfep)) { |
| 890 | if (sfep->namelen == args->namelen && | 890 | if (sfep->namelen == args->namelen && |
| 891 | sfep->name[0] == args->name[0] && | 891 | sfep->name[0] == args->name[0] && |
| 892 | memcmp(args->name, sfep->name, args->namelen) == 0) { | 892 | memcmp(args->name, sfep->name, args->namelen) == 0) { |
| 893 | args->inumber = | 893 | args->inumber = |
| 894 | XFS_DIR2_SF_GET_INUMBER(sfp, | 894 | xfs_dir2_sf_get_inumber(sfp, |
| 895 | XFS_DIR2_SF_INUMBERP(sfep)); | 895 | xfs_dir2_sf_inumberp(sfep)); |
| 896 | return XFS_ERROR(EEXIST); | 896 | return XFS_ERROR(EEXIST); |
| 897 | } | 897 | } |
| 898 | } | 898 | } |
| @@ -934,19 +934,19 @@ xfs_dir2_sf_removename( | |||
| 934 | ASSERT(dp->i_df.if_bytes == oldsize); | 934 | ASSERT(dp->i_df.if_bytes == oldsize); |
| 935 | ASSERT(dp->i_df.if_u1.if_data != NULL); | 935 | ASSERT(dp->i_df.if_u1.if_data != NULL); |
| 936 | sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; | 936 | sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; |
| 937 | ASSERT(oldsize >= XFS_DIR2_SF_HDR_SIZE(sfp->hdr.i8count)); | 937 | ASSERT(oldsize >= xfs_dir2_sf_hdr_size(sfp->hdr.i8count)); |
| 938 | /* | 938 | /* |
| 939 | * Loop over the old directory entries. | 939 | * Loop over the old directory entries. |
| 940 | * Find the one we're deleting. | 940 | * Find the one we're deleting. |
| 941 | */ | 941 | */ |
| 942 | for (i = 0, sfep = XFS_DIR2_SF_FIRSTENTRY(sfp); | 942 | for (i = 0, sfep = xfs_dir2_sf_firstentry(sfp); |
| 943 | i < sfp->hdr.count; | 943 | i < sfp->hdr.count; |
| 944 | i++, sfep = XFS_DIR2_SF_NEXTENTRY(sfp, sfep)) { | 944 | i++, sfep = xfs_dir2_sf_nextentry(sfp, sfep)) { |
| 945 | if (sfep->namelen == args->namelen && | 945 | if (sfep->namelen == args->namelen && |
| 946 | sfep->name[0] == args->name[0] && | 946 | sfep->name[0] == args->name[0] && |
| 947 | memcmp(sfep->name, args->name, args->namelen) == 0) { | 947 | memcmp(sfep->name, args->name, args->namelen) == 0) { |
| 948 | ASSERT(XFS_DIR2_SF_GET_INUMBER(sfp, | 948 | ASSERT(xfs_dir2_sf_get_inumber(sfp, |
| 949 | XFS_DIR2_SF_INUMBERP(sfep)) == | 949 | xfs_dir2_sf_inumberp(sfep)) == |
| 950 | args->inumber); | 950 | args->inumber); |
| 951 | break; | 951 | break; |
| 952 | } | 952 | } |
| @@ -961,7 +961,7 @@ xfs_dir2_sf_removename( | |||
| 961 | * Calculate sizes. | 961 | * Calculate sizes. |
| 962 | */ | 962 | */ |
| 963 | byteoff = (int)((char *)sfep - (char *)sfp); | 963 | byteoff = (int)((char *)sfep - (char *)sfp); |
| 964 | entsize = XFS_DIR2_SF_ENTSIZE_BYNAME(sfp, args->namelen); | 964 | entsize = xfs_dir2_sf_entsize_byname(sfp, args->namelen); |
| 965 | newsize = oldsize - entsize; | 965 | newsize = oldsize - entsize; |
| 966 | /* | 966 | /* |
| 967 | * Copy the part if any after the removed entry, sliding it down. | 967 | * Copy the part if any after the removed entry, sliding it down. |
| @@ -1027,7 +1027,7 @@ xfs_dir2_sf_replace( | |||
| 1027 | ASSERT(dp->i_df.if_bytes == dp->i_d.di_size); | 1027 | ASSERT(dp->i_df.if_bytes == dp->i_d.di_size); |
| 1028 | ASSERT(dp->i_df.if_u1.if_data != NULL); | 1028 | ASSERT(dp->i_df.if_u1.if_data != NULL); |
| 1029 | sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; | 1029 | sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; |
| 1030 | ASSERT(dp->i_d.di_size >= XFS_DIR2_SF_HDR_SIZE(sfp->hdr.i8count)); | 1030 | ASSERT(dp->i_d.di_size >= xfs_dir2_sf_hdr_size(sfp->hdr.i8count)); |
| 1031 | #if XFS_BIG_INUMS | 1031 | #if XFS_BIG_INUMS |
| 1032 | /* | 1032 | /* |
| 1033 | * New inode number is large, and need to convert to 8-byte inodes. | 1033 | * New inode number is large, and need to convert to 8-byte inodes. |
| @@ -1067,28 +1067,28 @@ xfs_dir2_sf_replace( | |||
| 1067 | if (args->namelen == 2 && | 1067 | if (args->namelen == 2 && |
| 1068 | args->name[0] == '.' && args->name[1] == '.') { | 1068 | args->name[0] == '.' && args->name[1] == '.') { |
| 1069 | #if XFS_BIG_INUMS || defined(DEBUG) | 1069 | #if XFS_BIG_INUMS || defined(DEBUG) |
| 1070 | ino = XFS_DIR2_SF_GET_INUMBER(sfp, &sfp->hdr.parent); | 1070 | ino = xfs_dir2_sf_get_inumber(sfp, &sfp->hdr.parent); |
| 1071 | ASSERT(args->inumber != ino); | 1071 | ASSERT(args->inumber != ino); |
| 1072 | #endif | 1072 | #endif |
| 1073 | XFS_DIR2_SF_PUT_INUMBER(sfp, &args->inumber, &sfp->hdr.parent); | 1073 | xfs_dir2_sf_put_inumber(sfp, &args->inumber, &sfp->hdr.parent); |
| 1074 | } | 1074 | } |
| 1075 | /* | 1075 | /* |
| 1076 | * Normal entry, look for the name. | 1076 | * Normal entry, look for the name. |
| 1077 | */ | 1077 | */ |
| 1078 | else { | 1078 | else { |
| 1079 | for (i = 0, sfep = XFS_DIR2_SF_FIRSTENTRY(sfp); | 1079 | for (i = 0, sfep = xfs_dir2_sf_firstentry(sfp); |
| 1080 | i < sfp->hdr.count; | 1080 | i < sfp->hdr.count; |
| 1081 | i++, sfep = XFS_DIR2_SF_NEXTENTRY(sfp, sfep)) { | 1081 | i++, sfep = xfs_dir2_sf_nextentry(sfp, sfep)) { |
| 1082 | if (sfep->namelen == args->namelen && | 1082 | if (sfep->namelen == args->namelen && |
| 1083 | sfep->name[0] == args->name[0] && | 1083 | sfep->name[0] == args->name[0] && |
| 1084 | memcmp(args->name, sfep->name, args->namelen) == 0) { | 1084 | memcmp(args->name, sfep->name, args->namelen) == 0) { |
| 1085 | #if XFS_BIG_INUMS || defined(DEBUG) | 1085 | #if XFS_BIG_INUMS || defined(DEBUG) |
| 1086 | ino = XFS_DIR2_SF_GET_INUMBER(sfp, | 1086 | ino = xfs_dir2_sf_get_inumber(sfp, |
| 1087 | XFS_DIR2_SF_INUMBERP(sfep)); | 1087 | xfs_dir2_sf_inumberp(sfep)); |
| 1088 | ASSERT(args->inumber != ino); | 1088 | ASSERT(args->inumber != ino); |
| 1089 | #endif | 1089 | #endif |
| 1090 | XFS_DIR2_SF_PUT_INUMBER(sfp, &args->inumber, | 1090 | xfs_dir2_sf_put_inumber(sfp, &args->inumber, |
| 1091 | XFS_DIR2_SF_INUMBERP(sfep)); | 1091 | xfs_dir2_sf_inumberp(sfep)); |
| 1092 | break; | 1092 | break; |
| 1093 | } | 1093 | } |
| 1094 | } | 1094 | } |
| @@ -1189,22 +1189,22 @@ xfs_dir2_sf_toino4( | |||
| 1189 | */ | 1189 | */ |
| 1190 | sfp->hdr.count = oldsfp->hdr.count; | 1190 | sfp->hdr.count = oldsfp->hdr.count; |
| 1191 | sfp->hdr.i8count = 0; | 1191 | sfp->hdr.i8count = 0; |
| 1192 | ino = XFS_DIR2_SF_GET_INUMBER(oldsfp, &oldsfp->hdr.parent); | 1192 | ino = xfs_dir2_sf_get_inumber(oldsfp, &oldsfp->hdr.parent); |
| 1193 | XFS_DIR2_SF_PUT_INUMBER(sfp, &ino, &sfp->hdr.parent); | 1193 | xfs_dir2_sf_put_inumber(sfp, &ino, &sfp->hdr.parent); |
| 1194 | /* | 1194 | /* |
| 1195 | * Copy the entries field by field. | 1195 | * Copy the entries field by field. |
| 1196 | */ | 1196 | */ |
| 1197 | for (i = 0, sfep = XFS_DIR2_SF_FIRSTENTRY(sfp), | 1197 | for (i = 0, sfep = xfs_dir2_sf_firstentry(sfp), |
| 1198 | oldsfep = XFS_DIR2_SF_FIRSTENTRY(oldsfp); | 1198 | oldsfep = xfs_dir2_sf_firstentry(oldsfp); |
| 1199 | i < sfp->hdr.count; | 1199 | i < sfp->hdr.count; |
| 1200 | i++, sfep = XFS_DIR2_SF_NEXTENTRY(sfp, sfep), | 1200 | i++, sfep = xfs_dir2_sf_nextentry(sfp, sfep), |
| 1201 | oldsfep = XFS_DIR2_SF_NEXTENTRY(oldsfp, oldsfep)) { | 1201 | oldsfep = xfs_dir2_sf_nextentry(oldsfp, oldsfep)) { |
| 1202 | sfep->namelen = oldsfep->namelen; | 1202 | sfep->namelen = oldsfep->namelen; |
| 1203 | sfep->offset = oldsfep->offset; | 1203 | sfep->offset = oldsfep->offset; |
| 1204 | memcpy(sfep->name, oldsfep->name, sfep->namelen); | 1204 | memcpy(sfep->name, oldsfep->name, sfep->namelen); |
| 1205 | ino = XFS_DIR2_SF_GET_INUMBER(oldsfp, | 1205 | ino = xfs_dir2_sf_get_inumber(oldsfp, |
| 1206 | XFS_DIR2_SF_INUMBERP(oldsfep)); | 1206 | xfs_dir2_sf_inumberp(oldsfep)); |
| 1207 | XFS_DIR2_SF_PUT_INUMBER(sfp, &ino, XFS_DIR2_SF_INUMBERP(sfep)); | 1207 | xfs_dir2_sf_put_inumber(sfp, &ino, xfs_dir2_sf_inumberp(sfep)); |
| 1208 | } | 1208 | } |
| 1209 | /* | 1209 | /* |
| 1210 | * Clean up the inode. | 1210 | * Clean up the inode. |
| @@ -1266,22 +1266,22 @@ xfs_dir2_sf_toino8( | |||
| 1266 | */ | 1266 | */ |
| 1267 | sfp->hdr.count = oldsfp->hdr.count; | 1267 | sfp->hdr.count = oldsfp->hdr.count; |
| 1268 | sfp->hdr.i8count = 1; | 1268 | sfp->hdr.i8count = 1; |
| 1269 | ino = XFS_DIR2_SF_GET_INUMBER(oldsfp, &oldsfp->hdr.parent); | 1269 | ino = xfs_dir2_sf_get_inumber(oldsfp, &oldsfp->hdr.parent); |
| 1270 | XFS_DIR2_SF_PUT_INUMBER(sfp, &ino, &sfp->hdr.parent); | 1270 | xfs_dir2_sf_put_inumber(sfp, &ino, &sfp->hdr.parent); |
| 1271 | /* | 1271 | /* |
| 1272 | * Copy the entries field by field. | 1272 | * Copy the entries field by field. |
| 1273 | */ | 1273 | */ |
| 1274 | for (i = 0, sfep = XFS_DIR2_SF_FIRSTENTRY(sfp), | 1274 | for (i = 0, sfep = xfs_dir2_sf_firstentry(sfp), |
| 1275 | oldsfep = XFS_DIR2_SF_FIRSTENTRY(oldsfp); | 1275 | oldsfep = xfs_dir2_sf_firstentry(oldsfp); |
| 1276 | i < sfp->hdr.count; | 1276 | i < sfp->hdr.count; |
| 1277 | i++, sfep = XFS_DIR2_SF_NEXTENTRY(sfp, sfep), | 1277 | i++, sfep = xfs_dir2_sf_nextentry(sfp, sfep), |
| 1278 | oldsfep = XFS_DIR2_SF_NEXTENTRY(oldsfp, oldsfep)) { | 1278 | oldsfep = xfs_dir2_sf_nextentry(oldsfp, oldsfep)) { |
| 1279 | sfep->namelen = oldsfep->namelen; | 1279 | sfep->namelen = oldsfep->namelen; |
| 1280 | sfep->offset = oldsfep->offset; | 1280 | sfep->offset = oldsfep->offset; |
| 1281 | memcpy(sfep->name, oldsfep->name, sfep->namelen); | 1281 | memcpy(sfep->name, oldsfep->name, sfep->namelen); |
| 1282 | ino = XFS_DIR2_SF_GET_INUMBER(oldsfp, | 1282 | ino = xfs_dir2_sf_get_inumber(oldsfp, |
| 1283 | XFS_DIR2_SF_INUMBERP(oldsfep)); | 1283 | xfs_dir2_sf_inumberp(oldsfep)); |
| 1284 | XFS_DIR2_SF_PUT_INUMBER(sfp, &ino, XFS_DIR2_SF_INUMBERP(sfep)); | 1284 | xfs_dir2_sf_put_inumber(sfp, &ino, xfs_dir2_sf_inumberp(sfep)); |
| 1285 | } | 1285 | } |
| 1286 | /* | 1286 | /* |
| 1287 | * Clean up the inode. | 1287 | * Clean up the inode. |
