aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/xfs/linux-2.6/xfs_aops.c4
-rw-r--r--fs/xfs/linux-2.6/xfs_file.c4
-rw-r--r--fs/xfs/quota/xfs_dquot.c4
-rw-r--r--fs/xfs/quota/xfs_qm.c2
-rw-r--r--fs/xfs/xfs_attr.c10
-rw-r--r--fs/xfs/xfs_attr_leaf.c2
-rw-r--r--fs/xfs/xfs_bmap.c217
-rw-r--r--fs/xfs/xfs_bmap.h20
-rw-r--r--fs/xfs/xfs_da_btree.c9
-rw-r--r--fs/xfs/xfs_dir2.c7
-rw-r--r--fs/xfs/xfs_dir2_leaf.c2
-rw-r--r--fs/xfs/xfs_inode.c4
-rw-r--r--fs/xfs/xfs_iomap.c12
-rw-r--r--fs/xfs/xfs_rtalloc.c2
-rw-r--r--fs/xfs/xfs_vnodeops.c20
15 files changed, 59 insertions, 260 deletions
diff --git a/fs/xfs/linux-2.6/xfs_aops.c b/fs/xfs/linux-2.6/xfs_aops.c
index e42c0ba6688a..b25d11a3d84e 100644
--- a/fs/xfs/linux-2.6/xfs_aops.c
+++ b/fs/xfs/linux-2.6/xfs_aops.c
@@ -974,7 +974,7 @@ xfs_aops_discard_page(
974 */ 974 */
975 error = xfs_bmapi(NULL, ip, offset_fsb, 1, 975 error = xfs_bmapi(NULL, ip, offset_fsb, 1,
976 XFS_BMAPI_ENTIRE, NULL, 0, &imap, 976 XFS_BMAPI_ENTIRE, NULL, 0, &imap,
977 &nimaps, NULL, NULL); 977 &nimaps, NULL);
978 978
979 if (error) { 979 if (error) {
980 /* something screwed, just bail */ 980 /* something screwed, just bail */
@@ -1002,7 +1002,7 @@ xfs_aops_discard_page(
1002 */ 1002 */
1003 xfs_bmap_init(&flist, &firstblock); 1003 xfs_bmap_init(&flist, &firstblock);
1004 error = xfs_bunmapi(NULL, ip, offset_fsb, 1, 0, 1, &firstblock, 1004 error = xfs_bunmapi(NULL, ip, offset_fsb, 1, 0, 1, &firstblock,
1005 &flist, NULL, &done); 1005 &flist, &done);
1006 1006
1007 ASSERT(!flist.xbf_count && !flist.xbf_first); 1007 ASSERT(!flist.xbf_count && !flist.xbf_first);
1008 if (error) { 1008 if (error) {
diff --git a/fs/xfs/linux-2.6/xfs_file.c b/fs/xfs/linux-2.6/xfs_file.c
index 9a9b446a58a7..22edad7a0bec 100644
--- a/fs/xfs/linux-2.6/xfs_file.c
+++ b/fs/xfs/linux-2.6/xfs_file.c
@@ -414,7 +414,7 @@ xfs_zero_last_block(
414 last_fsb = XFS_B_TO_FSBT(mp, isize); 414 last_fsb = XFS_B_TO_FSBT(mp, isize);
415 nimaps = 1; 415 nimaps = 1;
416 error = xfs_bmapi(NULL, ip, last_fsb, 1, 0, NULL, 0, &imap, 416 error = xfs_bmapi(NULL, ip, last_fsb, 1, 0, NULL, 0, &imap,
417 &nimaps, NULL, NULL); 417 &nimaps, NULL);
418 if (error) { 418 if (error) {
419 return error; 419 return error;
420 } 420 }
@@ -509,7 +509,7 @@ xfs_zero_eof(
509 nimaps = 1; 509 nimaps = 1;
510 zero_count_fsb = end_zero_fsb - start_zero_fsb + 1; 510 zero_count_fsb = end_zero_fsb - start_zero_fsb + 1;
511 error = xfs_bmapi(NULL, ip, start_zero_fsb, zero_count_fsb, 511 error = xfs_bmapi(NULL, ip, start_zero_fsb, zero_count_fsb,
512 0, NULL, 0, &imap, &nimaps, NULL, NULL); 512 0, NULL, 0, &imap, &nimaps, NULL);
513 if (error) { 513 if (error) {
514 ASSERT(xfs_isilocked(ip, XFS_ILOCK_EXCL|XFS_IOLOCK_EXCL)); 514 ASSERT(xfs_isilocked(ip, XFS_ILOCK_EXCL|XFS_IOLOCK_EXCL));
515 return error; 515 return error;
diff --git a/fs/xfs/quota/xfs_dquot.c b/fs/xfs/quota/xfs_dquot.c
index 56f366e327f3..e1a2f6800e01 100644
--- a/fs/xfs/quota/xfs_dquot.c
+++ b/fs/xfs/quota/xfs_dquot.c
@@ -385,7 +385,7 @@ xfs_qm_dqalloc(
385 XFS_BMAPI_METADATA | XFS_BMAPI_WRITE, 385 XFS_BMAPI_METADATA | XFS_BMAPI_WRITE,
386 &firstblock, 386 &firstblock,
387 XFS_QM_DQALLOC_SPACE_RES(mp), 387 XFS_QM_DQALLOC_SPACE_RES(mp),
388 &map, &nmaps, &flist, NULL))) { 388 &map, &nmaps, &flist))) {
389 goto error0; 389 goto error0;
390 } 390 }
391 ASSERT(map.br_blockcount == XFS_DQUOT_CLUSTER_SIZE_FSB); 391 ASSERT(map.br_blockcount == XFS_DQUOT_CLUSTER_SIZE_FSB);
@@ -501,7 +501,7 @@ xfs_qm_dqtobp(
501 error = xfs_bmapi(NULL, quotip, dqp->q_fileoffset, 501 error = xfs_bmapi(NULL, quotip, dqp->q_fileoffset,
502 XFS_DQUOT_CLUSTER_SIZE_FSB, 502 XFS_DQUOT_CLUSTER_SIZE_FSB,
503 XFS_BMAPI_METADATA, 503 XFS_BMAPI_METADATA,
504 NULL, 0, &map, &nmaps, NULL, NULL); 504 NULL, 0, &map, &nmaps, NULL);
505 505
506 xfs_iunlock(quotip, XFS_ILOCK_SHARED); 506 xfs_iunlock(quotip, XFS_ILOCK_SHARED);
507 if (error) 507 if (error)
diff --git a/fs/xfs/quota/xfs_qm.c b/fs/xfs/quota/xfs_qm.c
index b32c3fb9e779..7a33d65e2d28 100644
--- a/fs/xfs/quota/xfs_qm.c
+++ b/fs/xfs/quota/xfs_qm.c
@@ -1490,7 +1490,7 @@ xfs_qm_dqiterate(
1490 maxlblkcnt - lblkno, 1490 maxlblkcnt - lblkno,
1491 XFS_BMAPI_METADATA, 1491 XFS_BMAPI_METADATA,
1492 NULL, 1492 NULL,
1493 0, map, &nmaps, NULL, NULL); 1493 0, map, &nmaps, NULL);
1494 xfs_iunlock(qip, XFS_ILOCK_SHARED); 1494 xfs_iunlock(qip, XFS_ILOCK_SHARED);
1495 if (error) 1495 if (error)
1496 break; 1496 break;
diff --git a/fs/xfs/xfs_attr.c b/fs/xfs/xfs_attr.c
index f3ca7186155a..c2568242a901 100644
--- a/fs/xfs/xfs_attr.c
+++ b/fs/xfs/xfs_attr.c
@@ -1977,7 +1977,7 @@ xfs_attr_rmtval_get(xfs_da_args_t *args)
1977 error = xfs_bmapi(args->trans, args->dp, (xfs_fileoff_t)lblkno, 1977 error = xfs_bmapi(args->trans, args->dp, (xfs_fileoff_t)lblkno,
1978 args->rmtblkcnt, 1978 args->rmtblkcnt,
1979 XFS_BMAPI_ATTRFORK | XFS_BMAPI_METADATA, 1979 XFS_BMAPI_ATTRFORK | XFS_BMAPI_METADATA,
1980 NULL, 0, map, &nmap, NULL, NULL); 1980 NULL, 0, map, &nmap, NULL);
1981 if (error) 1981 if (error)
1982 return(error); 1982 return(error);
1983 ASSERT(nmap >= 1); 1983 ASSERT(nmap >= 1);
@@ -2056,7 +2056,7 @@ xfs_attr_rmtval_set(xfs_da_args_t *args)
2056 XFS_BMAPI_ATTRFORK | XFS_BMAPI_METADATA | 2056 XFS_BMAPI_ATTRFORK | XFS_BMAPI_METADATA |
2057 XFS_BMAPI_WRITE, 2057 XFS_BMAPI_WRITE,
2058 args->firstblock, args->total, &map, &nmap, 2058 args->firstblock, args->total, &map, &nmap,
2059 args->flist, NULL); 2059 args->flist);
2060 if (!error) { 2060 if (!error) {
2061 error = xfs_bmap_finish(&args->trans, args->flist, 2061 error = xfs_bmap_finish(&args->trans, args->flist,
2062 &committed); 2062 &committed);
@@ -2107,7 +2107,7 @@ xfs_attr_rmtval_set(xfs_da_args_t *args)
2107 args->rmtblkcnt, 2107 args->rmtblkcnt,
2108 XFS_BMAPI_ATTRFORK | XFS_BMAPI_METADATA, 2108 XFS_BMAPI_ATTRFORK | XFS_BMAPI_METADATA,
2109 args->firstblock, 0, &map, &nmap, 2109 args->firstblock, 0, &map, &nmap,
2110 NULL, NULL); 2110 NULL);
2111 if (error) { 2111 if (error) {
2112 return(error); 2112 return(error);
2113 } 2113 }
@@ -2172,7 +2172,7 @@ xfs_attr_rmtval_remove(xfs_da_args_t *args)
2172 args->rmtblkcnt, 2172 args->rmtblkcnt,
2173 XFS_BMAPI_ATTRFORK | XFS_BMAPI_METADATA, 2173 XFS_BMAPI_ATTRFORK | XFS_BMAPI_METADATA,
2174 args->firstblock, 0, &map, &nmap, 2174 args->firstblock, 0, &map, &nmap,
2175 args->flist, NULL); 2175 args->flist);
2176 if (error) { 2176 if (error) {
2177 return(error); 2177 return(error);
2178 } 2178 }
@@ -2210,7 +2210,7 @@ xfs_attr_rmtval_remove(xfs_da_args_t *args)
2210 error = xfs_bunmapi(args->trans, args->dp, lblkno, blkcnt, 2210 error = xfs_bunmapi(args->trans, args->dp, lblkno, blkcnt,
2211 XFS_BMAPI_ATTRFORK | XFS_BMAPI_METADATA, 2211 XFS_BMAPI_ATTRFORK | XFS_BMAPI_METADATA,
2212 1, args->firstblock, args->flist, 2212 1, args->firstblock, args->flist,
2213 NULL, &done); 2213 &done);
2214 if (!error) { 2214 if (!error) {
2215 error = xfs_bmap_finish(&args->trans, args->flist, 2215 error = xfs_bmap_finish(&args->trans, args->flist,
2216 &committed); 2216 &committed);
diff --git a/fs/xfs/xfs_attr_leaf.c b/fs/xfs/xfs_attr_leaf.c
index e4d48b2cee19..a6cff8edcdb6 100644
--- a/fs/xfs/xfs_attr_leaf.c
+++ b/fs/xfs/xfs_attr_leaf.c
@@ -2928,7 +2928,7 @@ xfs_attr_leaf_freextent(xfs_trans_t **trans, xfs_inode_t *dp,
2928 nmap = 1; 2928 nmap = 1;
2929 error = xfs_bmapi(*trans, dp, (xfs_fileoff_t)tblkno, tblkcnt, 2929 error = xfs_bmapi(*trans, dp, (xfs_fileoff_t)tblkno, tblkcnt,
2930 XFS_BMAPI_ATTRFORK | XFS_BMAPI_METADATA, 2930 XFS_BMAPI_ATTRFORK | XFS_BMAPI_METADATA,
2931 NULL, 0, &map, &nmap, NULL, NULL); 2931 NULL, 0, &map, &nmap, NULL);
2932 if (error) { 2932 if (error) {
2933 return(error); 2933 return(error);
2934 } 2934 }
diff --git a/fs/xfs/xfs_bmap.c b/fs/xfs/xfs_bmap.c
index 598a30ba3141..d74fbec80622 100644
--- a/fs/xfs/xfs_bmap.c
+++ b/fs/xfs/xfs_bmap.c
@@ -101,7 +101,6 @@ xfs_bmap_add_extent(
101 xfs_fsblock_t *first, /* pointer to firstblock variable */ 101 xfs_fsblock_t *first, /* pointer to firstblock variable */
102 xfs_bmap_free_t *flist, /* list of extents to be freed */ 102 xfs_bmap_free_t *flist, /* list of extents to be freed */
103 int *logflagsp, /* inode logging flags */ 103 int *logflagsp, /* inode logging flags */
104 xfs_extdelta_t *delta, /* Change made to incore extents */
105 int whichfork, /* data or attr fork */ 104 int whichfork, /* data or attr fork */
106 int rsvd); /* OK to allocate reserved blocks */ 105 int rsvd); /* OK to allocate reserved blocks */
107 106
@@ -119,7 +118,6 @@ xfs_bmap_add_extent_delay_real(
119 xfs_fsblock_t *first, /* pointer to firstblock variable */ 118 xfs_fsblock_t *first, /* pointer to firstblock variable */
120 xfs_bmap_free_t *flist, /* list of extents to be freed */ 119 xfs_bmap_free_t *flist, /* list of extents to be freed */
121 int *logflagsp, /* inode logging flags */ 120 int *logflagsp, /* inode logging flags */
122 xfs_extdelta_t *delta, /* Change made to incore extents */
123 int rsvd); /* OK to allocate reserved blocks */ 121 int rsvd); /* OK to allocate reserved blocks */
124 122
125/* 123/*
@@ -132,7 +130,6 @@ xfs_bmap_add_extent_hole_delay(
132 xfs_extnum_t idx, /* extent number to update/insert */ 130 xfs_extnum_t idx, /* extent number to update/insert */
133 xfs_bmbt_irec_t *new, /* new data to add to file extents */ 131 xfs_bmbt_irec_t *new, /* new data to add to file extents */
134 int *logflagsp,/* inode logging flags */ 132 int *logflagsp,/* inode logging flags */
135 xfs_extdelta_t *delta, /* Change made to incore extents */
136 int rsvd); /* OK to allocate reserved blocks */ 133 int rsvd); /* OK to allocate reserved blocks */
137 134
138/* 135/*
@@ -146,7 +143,6 @@ xfs_bmap_add_extent_hole_real(
146 xfs_btree_cur_t *cur, /* if null, not a btree */ 143 xfs_btree_cur_t *cur, /* if null, not a btree */
147 xfs_bmbt_irec_t *new, /* new data to add to file extents */ 144 xfs_bmbt_irec_t *new, /* new data to add to file extents */
148 int *logflagsp, /* inode logging flags */ 145 int *logflagsp, /* inode logging flags */
149 xfs_extdelta_t *delta, /* Change made to incore extents */
150 int whichfork); /* data or attr fork */ 146 int whichfork); /* data or attr fork */
151 147
152/* 148/*
@@ -159,8 +155,7 @@ xfs_bmap_add_extent_unwritten_real(
159 xfs_extnum_t idx, /* extent number to update/insert */ 155 xfs_extnum_t idx, /* extent number to update/insert */
160 xfs_btree_cur_t **curp, /* if *curp is null, not a btree */ 156 xfs_btree_cur_t **curp, /* if *curp is null, not a btree */
161 xfs_bmbt_irec_t *new, /* new data to add to file extents */ 157 xfs_bmbt_irec_t *new, /* new data to add to file extents */
162 int *logflagsp, /* inode logging flags */ 158 int *logflagsp); /* inode logging flags */
163 xfs_extdelta_t *delta); /* Change made to incore extents */
164 159
165/* 160/*
166 * xfs_bmap_alloc is called by xfs_bmapi to allocate an extent for a file. 161 * xfs_bmap_alloc is called by xfs_bmapi to allocate an extent for a file.
@@ -197,7 +192,6 @@ xfs_bmap_del_extent(
197 xfs_btree_cur_t *cur, /* if null, not a btree */ 192 xfs_btree_cur_t *cur, /* if null, not a btree */
198 xfs_bmbt_irec_t *new, /* new data to add to file extents */ 193 xfs_bmbt_irec_t *new, /* new data to add to file extents */
199 int *logflagsp,/* inode logging flags */ 194 int *logflagsp,/* inode logging flags */
200 xfs_extdelta_t *delta, /* Change made to incore extents */
201 int whichfork, /* data or attr fork */ 195 int whichfork, /* data or attr fork */
202 int rsvd); /* OK to allocate reserved blocks */ 196 int rsvd); /* OK to allocate reserved blocks */
203 197
@@ -486,7 +480,6 @@ xfs_bmap_add_extent(
486 xfs_fsblock_t *first, /* pointer to firstblock variable */ 480 xfs_fsblock_t *first, /* pointer to firstblock variable */
487 xfs_bmap_free_t *flist, /* list of extents to be freed */ 481 xfs_bmap_free_t *flist, /* list of extents to be freed */
488 int *logflagsp, /* inode logging flags */ 482 int *logflagsp, /* inode logging flags */
489 xfs_extdelta_t *delta, /* Change made to incore extents */
490 int whichfork, /* data or attr fork */ 483 int whichfork, /* data or attr fork */
491 int rsvd) /* OK to use reserved data blocks */ 484 int rsvd) /* OK to use reserved data blocks */
492{ 485{
@@ -521,15 +514,6 @@ xfs_bmap_add_extent(
521 logflags = XFS_ILOG_CORE | xfs_ilog_fext(whichfork); 514 logflags = XFS_ILOG_CORE | xfs_ilog_fext(whichfork);
522 } else 515 } else
523 logflags = 0; 516 logflags = 0;
524 /* DELTA: single new extent */
525 if (delta) {
526 if (delta->xed_startoff > new->br_startoff)
527 delta->xed_startoff = new->br_startoff;
528 if (delta->xed_blockcount <
529 new->br_startoff + new->br_blockcount)
530 delta->xed_blockcount = new->br_startoff +
531 new->br_blockcount;
532 }
533 } 517 }
534 /* 518 /*
535 * Any kind of new delayed allocation goes here. 519 * Any kind of new delayed allocation goes here.
@@ -539,7 +523,7 @@ xfs_bmap_add_extent(
539 ASSERT((cur->bc_private.b.flags & 523 ASSERT((cur->bc_private.b.flags &
540 XFS_BTCUR_BPRV_WASDEL) == 0); 524 XFS_BTCUR_BPRV_WASDEL) == 0);
541 if ((error = xfs_bmap_add_extent_hole_delay(ip, idx, new, 525 if ((error = xfs_bmap_add_extent_hole_delay(ip, idx, new,
542 &logflags, delta, rsvd))) 526 &logflags, rsvd)))
543 goto done; 527 goto done;
544 } 528 }
545 /* 529 /*
@@ -550,7 +534,7 @@ xfs_bmap_add_extent(
550 ASSERT((cur->bc_private.b.flags & 534 ASSERT((cur->bc_private.b.flags &
551 XFS_BTCUR_BPRV_WASDEL) == 0); 535 XFS_BTCUR_BPRV_WASDEL) == 0);
552 if ((error = xfs_bmap_add_extent_hole_real(ip, idx, cur, new, 536 if ((error = xfs_bmap_add_extent_hole_real(ip, idx, cur, new,
553 &logflags, delta, whichfork))) 537 &logflags, whichfork)))
554 goto done; 538 goto done;
555 } else { 539 } else {
556 xfs_bmbt_irec_t prev; /* old extent at offset idx */ 540 xfs_bmbt_irec_t prev; /* old extent at offset idx */
@@ -575,17 +559,17 @@ xfs_bmap_add_extent(
575 XFS_BTCUR_BPRV_WASDEL); 559 XFS_BTCUR_BPRV_WASDEL);
576 if ((error = xfs_bmap_add_extent_delay_real(ip, 560 if ((error = xfs_bmap_add_extent_delay_real(ip,
577 idx, &cur, new, &da_new, first, flist, 561 idx, &cur, new, &da_new, first, flist,
578 &logflags, delta, rsvd))) 562 &logflags, rsvd)))
579 goto done; 563 goto done;
580 } else if (new->br_state == XFS_EXT_NORM) { 564 } else if (new->br_state == XFS_EXT_NORM) {
581 ASSERT(new->br_state == XFS_EXT_NORM); 565 ASSERT(new->br_state == XFS_EXT_NORM);
582 if ((error = xfs_bmap_add_extent_unwritten_real( 566 if ((error = xfs_bmap_add_extent_unwritten_real(
583 ip, idx, &cur, new, &logflags, delta))) 567 ip, idx, &cur, new, &logflags)))
584 goto done; 568 goto done;
585 } else { 569 } else {
586 ASSERT(new->br_state == XFS_EXT_UNWRITTEN); 570 ASSERT(new->br_state == XFS_EXT_UNWRITTEN);
587 if ((error = xfs_bmap_add_extent_unwritten_real( 571 if ((error = xfs_bmap_add_extent_unwritten_real(
588 ip, idx, &cur, new, &logflags, delta))) 572 ip, idx, &cur, new, &logflags)))
589 goto done; 573 goto done;
590 } 574 }
591 ASSERT(*curp == cur || *curp == NULL); 575 ASSERT(*curp == cur || *curp == NULL);
@@ -598,7 +582,7 @@ xfs_bmap_add_extent(
598 ASSERT((cur->bc_private.b.flags & 582 ASSERT((cur->bc_private.b.flags &
599 XFS_BTCUR_BPRV_WASDEL) == 0); 583 XFS_BTCUR_BPRV_WASDEL) == 0);
600 if ((error = xfs_bmap_add_extent_hole_real(ip, idx, cur, 584 if ((error = xfs_bmap_add_extent_hole_real(ip, idx, cur,
601 new, &logflags, delta, whichfork))) 585 new, &logflags, whichfork)))
602 goto done; 586 goto done;
603 } 587 }
604 } 588 }
@@ -663,7 +647,6 @@ xfs_bmap_add_extent_delay_real(
663 xfs_fsblock_t *first, /* pointer to firstblock variable */ 647 xfs_fsblock_t *first, /* pointer to firstblock variable */
664 xfs_bmap_free_t *flist, /* list of extents to be freed */ 648 xfs_bmap_free_t *flist, /* list of extents to be freed */
665 int *logflagsp, /* inode logging flags */ 649 int *logflagsp, /* inode logging flags */
666 xfs_extdelta_t *delta, /* Change made to incore extents */
667 int rsvd) /* OK to use reserved data block allocation */ 650 int rsvd) /* OK to use reserved data block allocation */
668{ 651{
669 xfs_btree_cur_t *cur; /* btree cursor */ 652 xfs_btree_cur_t *cur; /* btree cursor */
@@ -794,11 +777,6 @@ xfs_bmap_add_extent_delay_real(
794 goto done; 777 goto done;
795 } 778 }
796 *dnew = 0; 779 *dnew = 0;
797 /* DELTA: Three in-core extents are replaced by one. */
798 temp = LEFT.br_startoff;
799 temp2 = LEFT.br_blockcount +
800 PREV.br_blockcount +
801 RIGHT.br_blockcount;
802 break; 780 break;
803 781
804 case BMAP_LEFT_FILLING | BMAP_RIGHT_FILLING | BMAP_LEFT_CONTIG: 782 case BMAP_LEFT_FILLING | BMAP_RIGHT_FILLING | BMAP_LEFT_CONTIG:
@@ -829,10 +807,6 @@ xfs_bmap_add_extent_delay_real(
829 goto done; 807 goto done;
830 } 808 }
831 *dnew = 0; 809 *dnew = 0;
832 /* DELTA: Two in-core extents are replaced by one. */
833 temp = LEFT.br_startoff;
834 temp2 = LEFT.br_blockcount +
835 PREV.br_blockcount;
836 break; 810 break;
837 811
838 case BMAP_LEFT_FILLING | BMAP_RIGHT_FILLING | BMAP_RIGHT_CONTIG: 812 case BMAP_LEFT_FILLING | BMAP_RIGHT_FILLING | BMAP_RIGHT_CONTIG:
@@ -864,10 +838,6 @@ xfs_bmap_add_extent_delay_real(
864 goto done; 838 goto done;
865 } 839 }
866 *dnew = 0; 840 *dnew = 0;
867 /* DELTA: Two in-core extents are replaced by one. */
868 temp = PREV.br_startoff;
869 temp2 = PREV.br_blockcount +
870 RIGHT.br_blockcount;
871 break; 841 break;
872 842
873 case BMAP_LEFT_FILLING | BMAP_RIGHT_FILLING: 843 case BMAP_LEFT_FILLING | BMAP_RIGHT_FILLING:
@@ -897,9 +867,6 @@ xfs_bmap_add_extent_delay_real(
897 XFS_WANT_CORRUPTED_GOTO(i == 1, done); 867 XFS_WANT_CORRUPTED_GOTO(i == 1, done);
898 } 868 }
899 *dnew = 0; 869 *dnew = 0;
900 /* DELTA: The in-core extent described by new changed type. */
901 temp = new->br_startoff;
902 temp2 = new->br_blockcount;
903 break; 870 break;
904 871
905 case BMAP_LEFT_FILLING | BMAP_LEFT_CONTIG: 872 case BMAP_LEFT_FILLING | BMAP_LEFT_CONTIG:
@@ -939,10 +906,6 @@ xfs_bmap_add_extent_delay_real(
939 xfs_bmbt_set_startblock(ep, nullstartblock((int)temp)); 906 xfs_bmbt_set_startblock(ep, nullstartblock((int)temp));
940 trace_xfs_bmap_post_update(ip, idx, state, _THIS_IP_); 907 trace_xfs_bmap_post_update(ip, idx, state, _THIS_IP_);
941 *dnew = temp; 908 *dnew = temp;
942 /* DELTA: The boundary between two in-core extents moved. */
943 temp = LEFT.br_startoff;
944 temp2 = LEFT.br_blockcount +
945 PREV.br_blockcount;
946 break; 909 break;
947 910
948 case BMAP_LEFT_FILLING: 911 case BMAP_LEFT_FILLING:
@@ -987,9 +950,6 @@ xfs_bmap_add_extent_delay_real(
987 xfs_bmbt_set_startblock(ep, nullstartblock((int)temp)); 950 xfs_bmbt_set_startblock(ep, nullstartblock((int)temp));
988 trace_xfs_bmap_post_update(ip, idx + 1, state, _THIS_IP_); 951 trace_xfs_bmap_post_update(ip, idx + 1, state, _THIS_IP_);
989 *dnew = temp; 952 *dnew = temp;
990 /* DELTA: One in-core extent is split in two. */
991 temp = PREV.br_startoff;
992 temp2 = PREV.br_blockcount;
993 break; 953 break;
994 954
995 case BMAP_RIGHT_FILLING | BMAP_RIGHT_CONTIG: 955 case BMAP_RIGHT_FILLING | BMAP_RIGHT_CONTIG:
@@ -1028,10 +988,6 @@ xfs_bmap_add_extent_delay_real(
1028 xfs_bmbt_set_startblock(ep, nullstartblock((int)temp)); 988 xfs_bmbt_set_startblock(ep, nullstartblock((int)temp));
1029 trace_xfs_bmap_post_update(ip, idx, state, _THIS_IP_); 989 trace_xfs_bmap_post_update(ip, idx, state, _THIS_IP_);
1030 *dnew = temp; 990 *dnew = temp;
1031 /* DELTA: The boundary between two in-core extents moved. */
1032 temp = PREV.br_startoff;
1033 temp2 = PREV.br_blockcount +
1034 RIGHT.br_blockcount;
1035 break; 991 break;
1036 992
1037 case BMAP_RIGHT_FILLING: 993 case BMAP_RIGHT_FILLING:
@@ -1075,9 +1031,6 @@ xfs_bmap_add_extent_delay_real(
1075 xfs_bmbt_set_startblock(ep, nullstartblock((int)temp)); 1031 xfs_bmbt_set_startblock(ep, nullstartblock((int)temp));
1076 trace_xfs_bmap_post_update(ip, idx, state, _THIS_IP_); 1032 trace_xfs_bmap_post_update(ip, idx, state, _THIS_IP_);
1077 *dnew = temp; 1033 *dnew = temp;
1078 /* DELTA: One in-core extent is split in two. */
1079 temp = PREV.br_startoff;
1080 temp2 = PREV.br_blockcount;
1081 break; 1034 break;
1082 1035
1083 case 0: 1036 case 0:
@@ -1158,9 +1111,6 @@ xfs_bmap_add_extent_delay_real(
1158 nullstartblock((int)temp2)); 1111 nullstartblock((int)temp2));
1159 trace_xfs_bmap_post_update(ip, idx + 2, state, _THIS_IP_); 1112 trace_xfs_bmap_post_update(ip, idx + 2, state, _THIS_IP_);
1160 *dnew = temp + temp2; 1113 *dnew = temp + temp2;
1161 /* DELTA: One in-core extent is split in three. */
1162 temp = PREV.br_startoff;
1163 temp2 = PREV.br_blockcount;
1164 break; 1114 break;
1165 1115
1166 case BMAP_LEFT_FILLING | BMAP_LEFT_CONTIG | BMAP_RIGHT_CONTIG: 1116 case BMAP_LEFT_FILLING | BMAP_LEFT_CONTIG | BMAP_RIGHT_CONTIG:
@@ -1176,13 +1126,6 @@ xfs_bmap_add_extent_delay_real(
1176 ASSERT(0); 1126 ASSERT(0);
1177 } 1127 }
1178 *curp = cur; 1128 *curp = cur;
1179 if (delta) {
1180 temp2 += temp;
1181 if (delta->xed_startoff > temp)
1182 delta->xed_startoff = temp;
1183 if (delta->xed_blockcount < temp2)
1184 delta->xed_blockcount = temp2;
1185 }
1186done: 1129done:
1187 *logflagsp = rval; 1130 *logflagsp = rval;
1188 return error; 1131 return error;
@@ -1201,8 +1144,7 @@ xfs_bmap_add_extent_unwritten_real(
1201 xfs_extnum_t idx, /* extent number to update/insert */ 1144 xfs_extnum_t idx, /* extent number to update/insert */
1202 xfs_btree_cur_t **curp, /* if *curp is null, not a btree */ 1145 xfs_btree_cur_t **curp, /* if *curp is null, not a btree */
1203 xfs_bmbt_irec_t *new, /* new data to add to file extents */ 1146 xfs_bmbt_irec_t *new, /* new data to add to file extents */
1204 int *logflagsp, /* inode logging flags */ 1147 int *logflagsp) /* inode logging flags */
1205 xfs_extdelta_t *delta) /* Change made to incore extents */
1206{ 1148{
1207 xfs_btree_cur_t *cur; /* btree cursor */ 1149 xfs_btree_cur_t *cur; /* btree cursor */
1208 xfs_bmbt_rec_host_t *ep; /* extent entry for idx */ 1150 xfs_bmbt_rec_host_t *ep; /* extent entry for idx */
@@ -1216,8 +1158,6 @@ xfs_bmap_add_extent_unwritten_real(
1216 /* left is 0, right is 1, prev is 2 */ 1158 /* left is 0, right is 1, prev is 2 */
1217 int rval=0; /* return value (logging flags) */ 1159 int rval=0; /* return value (logging flags) */
1218 int state = 0;/* state bits, accessed thru macros */ 1160 int state = 0;/* state bits, accessed thru macros */
1219 xfs_filblks_t temp=0;
1220 xfs_filblks_t temp2=0;
1221 1161
1222#define LEFT r[0] 1162#define LEFT r[0]
1223#define RIGHT r[1] 1163#define RIGHT r[1]
@@ -1338,11 +1278,6 @@ xfs_bmap_add_extent_unwritten_real(
1338 RIGHT.br_blockcount, LEFT.br_state))) 1278 RIGHT.br_blockcount, LEFT.br_state)))
1339 goto done; 1279 goto done;
1340 } 1280 }
1341 /* DELTA: Three in-core extents are replaced by one. */
1342 temp = LEFT.br_startoff;
1343 temp2 = LEFT.br_blockcount +
1344 PREV.br_blockcount +
1345 RIGHT.br_blockcount;
1346 break; 1281 break;
1347 1282
1348 case BMAP_LEFT_FILLING | BMAP_RIGHT_FILLING | BMAP_LEFT_CONTIG: 1283 case BMAP_LEFT_FILLING | BMAP_RIGHT_FILLING | BMAP_LEFT_CONTIG:
@@ -1379,10 +1314,6 @@ xfs_bmap_add_extent_unwritten_real(
1379 LEFT.br_state))) 1314 LEFT.br_state)))
1380 goto done; 1315 goto done;
1381 } 1316 }
1382 /* DELTA: Two in-core extents are replaced by one. */
1383 temp = LEFT.br_startoff;
1384 temp2 = LEFT.br_blockcount +
1385 PREV.br_blockcount;
1386 break; 1317 break;
1387 1318
1388 case BMAP_LEFT_FILLING | BMAP_RIGHT_FILLING | BMAP_RIGHT_CONTIG: 1319 case BMAP_LEFT_FILLING | BMAP_RIGHT_FILLING | BMAP_RIGHT_CONTIG:
@@ -1419,10 +1350,6 @@ xfs_bmap_add_extent_unwritten_real(
1419 newext))) 1350 newext)))
1420 goto done; 1351 goto done;
1421 } 1352 }
1422 /* DELTA: Two in-core extents are replaced by one. */
1423 temp = PREV.br_startoff;
1424 temp2 = PREV.br_blockcount +
1425 RIGHT.br_blockcount;
1426 break; 1353 break;
1427 1354
1428 case BMAP_LEFT_FILLING | BMAP_RIGHT_FILLING: 1355 case BMAP_LEFT_FILLING | BMAP_RIGHT_FILLING:
@@ -1450,9 +1377,6 @@ xfs_bmap_add_extent_unwritten_real(
1450 newext))) 1377 newext)))
1451 goto done; 1378 goto done;
1452 } 1379 }
1453 /* DELTA: The in-core extent described by new changed type. */
1454 temp = new->br_startoff;
1455 temp2 = new->br_blockcount;
1456 break; 1380 break;
1457 1381
1458 case BMAP_LEFT_FILLING | BMAP_LEFT_CONTIG: 1382 case BMAP_LEFT_FILLING | BMAP_LEFT_CONTIG:
@@ -1498,10 +1422,6 @@ xfs_bmap_add_extent_unwritten_real(
1498 LEFT.br_state)) 1422 LEFT.br_state))
1499 goto done; 1423 goto done;
1500 } 1424 }
1501 /* DELTA: The boundary between two in-core extents moved. */
1502 temp = LEFT.br_startoff;
1503 temp2 = LEFT.br_blockcount +
1504 PREV.br_blockcount;
1505 break; 1425 break;
1506 1426
1507 case BMAP_LEFT_FILLING: 1427 case BMAP_LEFT_FILLING:
@@ -1541,9 +1461,6 @@ xfs_bmap_add_extent_unwritten_real(
1541 goto done; 1461 goto done;
1542 XFS_WANT_CORRUPTED_GOTO(i == 1, done); 1462 XFS_WANT_CORRUPTED_GOTO(i == 1, done);
1543 } 1463 }
1544 /* DELTA: One in-core extent is split in two. */
1545 temp = PREV.br_startoff;
1546 temp2 = PREV.br_blockcount;
1547 break; 1464 break;
1548 1465
1549 case BMAP_RIGHT_FILLING | BMAP_RIGHT_CONTIG: 1466 case BMAP_RIGHT_FILLING | BMAP_RIGHT_CONTIG:
@@ -1584,10 +1501,6 @@ xfs_bmap_add_extent_unwritten_real(
1584 newext))) 1501 newext)))
1585 goto done; 1502 goto done;
1586 } 1503 }
1587 /* DELTA: The boundary between two in-core extents moved. */
1588 temp = PREV.br_startoff;
1589 temp2 = PREV.br_blockcount +
1590 RIGHT.br_blockcount;
1591 break; 1504 break;
1592 1505
1593 case BMAP_RIGHT_FILLING: 1506 case BMAP_RIGHT_FILLING:
@@ -1627,9 +1540,6 @@ xfs_bmap_add_extent_unwritten_real(
1627 goto done; 1540 goto done;
1628 XFS_WANT_CORRUPTED_GOTO(i == 1, done); 1541 XFS_WANT_CORRUPTED_GOTO(i == 1, done);
1629 } 1542 }
1630 /* DELTA: One in-core extent is split in two. */
1631 temp = PREV.br_startoff;
1632 temp2 = PREV.br_blockcount;
1633 break; 1543 break;
1634 1544
1635 case 0: 1545 case 0:
@@ -1689,9 +1599,6 @@ xfs_bmap_add_extent_unwritten_real(
1689 goto done; 1599 goto done;
1690 XFS_WANT_CORRUPTED_GOTO(i == 1, done); 1600 XFS_WANT_CORRUPTED_GOTO(i == 1, done);
1691 } 1601 }
1692 /* DELTA: One in-core extent is split in three. */
1693 temp = PREV.br_startoff;
1694 temp2 = PREV.br_blockcount;
1695 break; 1602 break;
1696 1603
1697 case BMAP_LEFT_FILLING | BMAP_LEFT_CONTIG | BMAP_RIGHT_CONTIG: 1604 case BMAP_LEFT_FILLING | BMAP_LEFT_CONTIG | BMAP_RIGHT_CONTIG:
@@ -1707,13 +1614,6 @@ xfs_bmap_add_extent_unwritten_real(
1707 ASSERT(0); 1614 ASSERT(0);
1708 } 1615 }
1709 *curp = cur; 1616 *curp = cur;
1710 if (delta) {
1711 temp2 += temp;
1712 if (delta->xed_startoff > temp)
1713 delta->xed_startoff = temp;
1714 if (delta->xed_blockcount < temp2)
1715 delta->xed_blockcount = temp2;
1716 }
1717done: 1617done:
1718 *logflagsp = rval; 1618 *logflagsp = rval;
1719 return error; 1619 return error;
@@ -1733,7 +1633,6 @@ xfs_bmap_add_extent_hole_delay(
1733 xfs_extnum_t idx, /* extent number to update/insert */ 1633 xfs_extnum_t idx, /* extent number to update/insert */
1734 xfs_bmbt_irec_t *new, /* new data to add to file extents */ 1634 xfs_bmbt_irec_t *new, /* new data to add to file extents */
1735 int *logflagsp, /* inode logging flags */ 1635 int *logflagsp, /* inode logging flags */
1736 xfs_extdelta_t *delta, /* Change made to incore extents */
1737 int rsvd) /* OK to allocate reserved blocks */ 1636 int rsvd) /* OK to allocate reserved blocks */
1738{ 1637{
1739 xfs_bmbt_rec_host_t *ep; /* extent record for idx */ 1638 xfs_bmbt_rec_host_t *ep; /* extent record for idx */
@@ -1744,7 +1643,6 @@ xfs_bmap_add_extent_hole_delay(
1744 xfs_bmbt_irec_t right; /* right neighbor extent entry */ 1643 xfs_bmbt_irec_t right; /* right neighbor extent entry */
1745 int state; /* state bits, accessed thru macros */ 1644 int state; /* state bits, accessed thru macros */
1746 xfs_filblks_t temp=0; /* temp for indirect calculations */ 1645 xfs_filblks_t temp=0; /* temp for indirect calculations */
1747 xfs_filblks_t temp2=0;
1748 1646
1749 ifp = XFS_IFORK_PTR(ip, XFS_DATA_FORK); 1647 ifp = XFS_IFORK_PTR(ip, XFS_DATA_FORK);
1750 ep = xfs_iext_get_ext(ifp, idx); 1648 ep = xfs_iext_get_ext(ifp, idx);
@@ -1816,9 +1714,6 @@ xfs_bmap_add_extent_hole_delay(
1816 1714
1817 xfs_iext_remove(ip, idx, 1, state); 1715 xfs_iext_remove(ip, idx, 1, state);
1818 ip->i_df.if_lastex = idx - 1; 1716 ip->i_df.if_lastex = idx - 1;
1819 /* DELTA: Two in-core extents were replaced by one. */
1820 temp2 = temp;
1821 temp = left.br_startoff;
1822 break; 1717 break;
1823 1718
1824 case BMAP_LEFT_CONTIG: 1719 case BMAP_LEFT_CONTIG:
@@ -1838,9 +1733,6 @@ xfs_bmap_add_extent_hole_delay(
1838 trace_xfs_bmap_post_update(ip, idx - 1, state, _THIS_IP_); 1733 trace_xfs_bmap_post_update(ip, idx - 1, state, _THIS_IP_);
1839 1734
1840 ip->i_df.if_lastex = idx - 1; 1735 ip->i_df.if_lastex = idx - 1;
1841 /* DELTA: One in-core extent grew into a hole. */
1842 temp2 = temp;
1843 temp = left.br_startoff;
1844 break; 1736 break;
1845 1737
1846 case BMAP_RIGHT_CONTIG: 1738 case BMAP_RIGHT_CONTIG:
@@ -1859,9 +1751,6 @@ xfs_bmap_add_extent_hole_delay(
1859 trace_xfs_bmap_post_update(ip, idx, state, _THIS_IP_); 1751 trace_xfs_bmap_post_update(ip, idx, state, _THIS_IP_);
1860 1752
1861 ip->i_df.if_lastex = idx; 1753 ip->i_df.if_lastex = idx;
1862 /* DELTA: One in-core extent grew into a hole. */
1863 temp2 = temp;
1864 temp = new->br_startoff;
1865 break; 1754 break;
1866 1755
1867 case 0: 1756 case 0:
@@ -1873,9 +1762,6 @@ xfs_bmap_add_extent_hole_delay(
1873 oldlen = newlen = 0; 1762 oldlen = newlen = 0;
1874 xfs_iext_insert(ip, idx, 1, new, state); 1763 xfs_iext_insert(ip, idx, 1, new, state);
1875 ip->i_df.if_lastex = idx; 1764 ip->i_df.if_lastex = idx;
1876 /* DELTA: A new in-core extent was added in a hole. */
1877 temp2 = new->br_blockcount;
1878 temp = new->br_startoff;
1879 break; 1765 break;
1880 } 1766 }
1881 if (oldlen != newlen) { 1767 if (oldlen != newlen) {
@@ -1886,13 +1772,6 @@ xfs_bmap_add_extent_hole_delay(
1886 * Nothing to do for disk quota accounting here. 1772 * Nothing to do for disk quota accounting here.
1887 */ 1773 */
1888 } 1774 }
1889 if (delta) {
1890 temp2 += temp;
1891 if (delta->xed_startoff > temp)
1892 delta->xed_startoff = temp;
1893 if (delta->xed_blockcount < temp2)
1894 delta->xed_blockcount = temp2;
1895 }
1896 *logflagsp = 0; 1775 *logflagsp = 0;
1897 return 0; 1776 return 0;
1898} 1777}
@@ -1908,7 +1787,6 @@ xfs_bmap_add_extent_hole_real(
1908 xfs_btree_cur_t *cur, /* if null, not a btree */ 1787 xfs_btree_cur_t *cur, /* if null, not a btree */
1909 xfs_bmbt_irec_t *new, /* new data to add to file extents */ 1788 xfs_bmbt_irec_t *new, /* new data to add to file extents */
1910 int *logflagsp, /* inode logging flags */ 1789 int *logflagsp, /* inode logging flags */
1911 xfs_extdelta_t *delta, /* Change made to incore extents */
1912 int whichfork) /* data or attr fork */ 1790 int whichfork) /* data or attr fork */
1913{ 1791{
1914 xfs_bmbt_rec_host_t *ep; /* pointer to extent entry ins. point */ 1792 xfs_bmbt_rec_host_t *ep; /* pointer to extent entry ins. point */
@@ -1919,8 +1797,6 @@ xfs_bmap_add_extent_hole_real(
1919 xfs_bmbt_irec_t right; /* right neighbor extent entry */ 1797 xfs_bmbt_irec_t right; /* right neighbor extent entry */
1920 int rval=0; /* return value (logging flags) */ 1798 int rval=0; /* return value (logging flags) */
1921 int state; /* state bits, accessed thru macros */ 1799 int state; /* state bits, accessed thru macros */
1922 xfs_filblks_t temp=0;
1923 xfs_filblks_t temp2=0;
1924 1800
1925 ifp = XFS_IFORK_PTR(ip, whichfork); 1801 ifp = XFS_IFORK_PTR(ip, whichfork);
1926 ASSERT(idx <= ifp->if_bytes / (uint)sizeof(xfs_bmbt_rec_t)); 1802 ASSERT(idx <= ifp->if_bytes / (uint)sizeof(xfs_bmbt_rec_t));
@@ -2017,11 +1893,6 @@ xfs_bmap_add_extent_hole_real(
2017 left.br_state))) 1893 left.br_state)))
2018 goto done; 1894 goto done;
2019 } 1895 }
2020 /* DELTA: Two in-core extents were replaced by one. */
2021 temp = left.br_startoff;
2022 temp2 = left.br_blockcount +
2023 new->br_blockcount +
2024 right.br_blockcount;
2025 break; 1896 break;
2026 1897
2027 case BMAP_LEFT_CONTIG: 1898 case BMAP_LEFT_CONTIG:
@@ -2053,10 +1924,6 @@ xfs_bmap_add_extent_hole_real(
2053 left.br_state))) 1924 left.br_state)))
2054 goto done; 1925 goto done;
2055 } 1926 }
2056 /* DELTA: One in-core extent grew. */
2057 temp = left.br_startoff;
2058 temp2 = left.br_blockcount +
2059 new->br_blockcount;
2060 break; 1927 break;
2061 1928
2062 case BMAP_RIGHT_CONTIG: 1929 case BMAP_RIGHT_CONTIG:
@@ -2089,10 +1956,6 @@ xfs_bmap_add_extent_hole_real(
2089 right.br_state))) 1956 right.br_state)))
2090 goto done; 1957 goto done;
2091 } 1958 }
2092 /* DELTA: One in-core extent grew. */
2093 temp = new->br_startoff;
2094 temp2 = new->br_blockcount +
2095 right.br_blockcount;
2096 break; 1959 break;
2097 1960
2098 case 0: 1961 case 0:
@@ -2120,18 +1983,8 @@ xfs_bmap_add_extent_hole_real(
2120 goto done; 1983 goto done;
2121 XFS_WANT_CORRUPTED_GOTO(i == 1, done); 1984 XFS_WANT_CORRUPTED_GOTO(i == 1, done);
2122 } 1985 }
2123 /* DELTA: A new extent was added in a hole. */
2124 temp = new->br_startoff;
2125 temp2 = new->br_blockcount;
2126 break; 1986 break;
2127 } 1987 }
2128 if (delta) {
2129 temp2 += temp;
2130 if (delta->xed_startoff > temp)
2131 delta->xed_startoff = temp;
2132 if (delta->xed_blockcount < temp2)
2133 delta->xed_blockcount = temp2;
2134 }
2135done: 1988done:
2136 *logflagsp = rval; 1989 *logflagsp = rval;
2137 return error; 1990 return error;
@@ -2956,7 +2809,6 @@ xfs_bmap_del_extent(
2956 xfs_btree_cur_t *cur, /* if null, not a btree */ 2809 xfs_btree_cur_t *cur, /* if null, not a btree */
2957 xfs_bmbt_irec_t *del, /* data to remove from extents */ 2810 xfs_bmbt_irec_t *del, /* data to remove from extents */
2958 int *logflagsp, /* inode logging flags */ 2811 int *logflagsp, /* inode logging flags */
2959 xfs_extdelta_t *delta, /* Change made to incore extents */
2960 int whichfork, /* data or attr fork */ 2812 int whichfork, /* data or attr fork */
2961 int rsvd) /* OK to allocate reserved blocks */ 2813 int rsvd) /* OK to allocate reserved blocks */
2962{ 2814{
@@ -3262,14 +3114,6 @@ xfs_bmap_del_extent(
3262 if (da_old > da_new) 3114 if (da_old > da_new)
3263 xfs_mod_incore_sb(mp, XFS_SBS_FDBLOCKS, (int64_t)(da_old - da_new), 3115 xfs_mod_incore_sb(mp, XFS_SBS_FDBLOCKS, (int64_t)(da_old - da_new),
3264 rsvd); 3116 rsvd);
3265 if (delta) {
3266 /* DELTA: report the original extent. */
3267 if (delta->xed_startoff > got.br_startoff)
3268 delta->xed_startoff = got.br_startoff;
3269 if (delta->xed_blockcount < got.br_startoff+got.br_blockcount)
3270 delta->xed_blockcount = got.br_startoff +
3271 got.br_blockcount;
3272 }
3273done: 3117done:
3274 *logflagsp = flags; 3118 *logflagsp = flags;
3275 return error; 3119 return error;
@@ -4481,8 +4325,7 @@ xfs_bmapi(
4481 xfs_extlen_t total, /* total blocks needed */ 4325 xfs_extlen_t total, /* total blocks needed */
4482 xfs_bmbt_irec_t *mval, /* output: map values */ 4326 xfs_bmbt_irec_t *mval, /* output: map values */
4483 int *nmap, /* i/o: mval size/count */ 4327 int *nmap, /* i/o: mval size/count */
4484 xfs_bmap_free_t *flist, /* i/o: list extents to free */ 4328 xfs_bmap_free_t *flist) /* i/o: list extents to free */
4485 xfs_extdelta_t *delta) /* o: change made to incore extents */
4486{ 4329{
4487 xfs_fsblock_t abno; /* allocated block number */ 4330 xfs_fsblock_t abno; /* allocated block number */
4488 xfs_extlen_t alen; /* allocated extent length */ 4331 xfs_extlen_t alen; /* allocated extent length */
@@ -4594,10 +4437,7 @@ xfs_bmapi(
4594 end = bno + len; 4437 end = bno + len;
4595 obno = bno; 4438 obno = bno;
4596 bma.ip = NULL; 4439 bma.ip = NULL;
4597 if (delta) { 4440
4598 delta->xed_startoff = NULLFILEOFF;
4599 delta->xed_blockcount = 0;
4600 }
4601 while (bno < end && n < *nmap) { 4441 while (bno < end && n < *nmap) {
4602 /* 4442 /*
4603 * Reading past eof, act as though there's a hole 4443 * Reading past eof, act as though there's a hole
@@ -4823,7 +4663,7 @@ xfs_bmapi(
4823 got.br_state = XFS_EXT_UNWRITTEN; 4663 got.br_state = XFS_EXT_UNWRITTEN;
4824 } 4664 }
4825 error = xfs_bmap_add_extent(ip, lastx, &cur, &got, 4665 error = xfs_bmap_add_extent(ip, lastx, &cur, &got,
4826 firstblock, flist, &tmp_logflags, delta, 4666 firstblock, flist, &tmp_logflags,
4827 whichfork, (flags & XFS_BMAPI_RSVBLOCKS)); 4667 whichfork, (flags & XFS_BMAPI_RSVBLOCKS));
4828 logflags |= tmp_logflags; 4668 logflags |= tmp_logflags;
4829 if (error) 4669 if (error)
@@ -4919,7 +4759,7 @@ xfs_bmapi(
4919 } 4759 }
4920 mval->br_state = XFS_EXT_NORM; 4760 mval->br_state = XFS_EXT_NORM;
4921 error = xfs_bmap_add_extent(ip, lastx, &cur, mval, 4761 error = xfs_bmap_add_extent(ip, lastx, &cur, mval,
4922 firstblock, flist, &tmp_logflags, delta, 4762 firstblock, flist, &tmp_logflags,
4923 whichfork, (flags & XFS_BMAPI_RSVBLOCKS)); 4763 whichfork, (flags & XFS_BMAPI_RSVBLOCKS));
4924 logflags |= tmp_logflags; 4764 logflags |= tmp_logflags;
4925 if (error) 4765 if (error)
@@ -5009,14 +4849,6 @@ xfs_bmapi(
5009 ASSERT(XFS_IFORK_FORMAT(ip, whichfork) != XFS_DINODE_FMT_BTREE || 4849 ASSERT(XFS_IFORK_FORMAT(ip, whichfork) != XFS_DINODE_FMT_BTREE ||
5010 XFS_IFORK_NEXTENTS(ip, whichfork) > ifp->if_ext_max); 4850 XFS_IFORK_NEXTENTS(ip, whichfork) > ifp->if_ext_max);
5011 error = 0; 4851 error = 0;
5012 if (delta && delta->xed_startoff != NULLFILEOFF) {
5013 /* A change was actually made.
5014 * Note that delta->xed_blockount is an offset at this
5015 * point and needs to be converted to a block count.
5016 */
5017 ASSERT(delta->xed_blockcount > delta->xed_startoff);
5018 delta->xed_blockcount -= delta->xed_startoff;
5019 }
5020error0: 4852error0:
5021 /* 4853 /*
5022 * Log everything. Do this after conversion, there's no point in 4854 * Log everything. Do this after conversion, there's no point in
@@ -5128,8 +4960,6 @@ xfs_bunmapi(
5128 xfs_fsblock_t *firstblock, /* first allocated block 4960 xfs_fsblock_t *firstblock, /* first allocated block
5129 controls a.g. for allocs */ 4961 controls a.g. for allocs */
5130 xfs_bmap_free_t *flist, /* i/o: list extents to free */ 4962 xfs_bmap_free_t *flist, /* i/o: list extents to free */
5131 xfs_extdelta_t *delta, /* o: change made to incore
5132 extents */
5133 int *done) /* set if not done yet */ 4963 int *done) /* set if not done yet */
5134{ 4964{
5135 xfs_btree_cur_t *cur; /* bmap btree cursor */ 4965 xfs_btree_cur_t *cur; /* bmap btree cursor */
@@ -5188,10 +5018,7 @@ xfs_bunmapi(
5188 bno = start + len - 1; 5018 bno = start + len - 1;
5189 ep = xfs_bmap_search_extents(ip, bno, whichfork, &eof, &lastx, &got, 5019 ep = xfs_bmap_search_extents(ip, bno, whichfork, &eof, &lastx, &got,
5190 &prev); 5020 &prev);
5191 if (delta) { 5021
5192 delta->xed_startoff = NULLFILEOFF;
5193 delta->xed_blockcount = 0;
5194 }
5195 /* 5022 /*
5196 * Check to see if the given block number is past the end of the 5023 * Check to see if the given block number is past the end of the
5197 * file, back up to the last block if so... 5024 * file, back up to the last block if so...
@@ -5289,7 +5116,7 @@ xfs_bunmapi(
5289 } 5116 }
5290 del.br_state = XFS_EXT_UNWRITTEN; 5117 del.br_state = XFS_EXT_UNWRITTEN;
5291 error = xfs_bmap_add_extent(ip, lastx, &cur, &del, 5118 error = xfs_bmap_add_extent(ip, lastx, &cur, &del,
5292 firstblock, flist, &logflags, delta, 5119 firstblock, flist, &logflags,
5293 XFS_DATA_FORK, 0); 5120 XFS_DATA_FORK, 0);
5294 if (error) 5121 if (error)
5295 goto error0; 5122 goto error0;
@@ -5344,7 +5171,7 @@ xfs_bunmapi(
5344 prev.br_state = XFS_EXT_UNWRITTEN; 5171 prev.br_state = XFS_EXT_UNWRITTEN;
5345 error = xfs_bmap_add_extent(ip, lastx - 1, &cur, 5172 error = xfs_bmap_add_extent(ip, lastx - 1, &cur,
5346 &prev, firstblock, flist, &logflags, 5173 &prev, firstblock, flist, &logflags,
5347 delta, XFS_DATA_FORK, 0); 5174 XFS_DATA_FORK, 0);
5348 if (error) 5175 if (error)
5349 goto error0; 5176 goto error0;
5350 goto nodelete; 5177 goto nodelete;
@@ -5353,7 +5180,7 @@ xfs_bunmapi(
5353 del.br_state = XFS_EXT_UNWRITTEN; 5180 del.br_state = XFS_EXT_UNWRITTEN;
5354 error = xfs_bmap_add_extent(ip, lastx, &cur, 5181 error = xfs_bmap_add_extent(ip, lastx, &cur,
5355 &del, firstblock, flist, &logflags, 5182 &del, firstblock, flist, &logflags,
5356 delta, XFS_DATA_FORK, 0); 5183 XFS_DATA_FORK, 0);
5357 if (error) 5184 if (error)
5358 goto error0; 5185 goto error0;
5359 goto nodelete; 5186 goto nodelete;
@@ -5406,7 +5233,7 @@ xfs_bunmapi(
5406 goto error0; 5233 goto error0;
5407 } 5234 }
5408 error = xfs_bmap_del_extent(ip, tp, lastx, flist, cur, &del, 5235 error = xfs_bmap_del_extent(ip, tp, lastx, flist, cur, &del,
5409 &tmp_logflags, delta, whichfork, rsvd); 5236 &tmp_logflags, whichfork, rsvd);
5410 logflags |= tmp_logflags; 5237 logflags |= tmp_logflags;
5411 if (error) 5238 if (error)
5412 goto error0; 5239 goto error0;
@@ -5463,14 +5290,6 @@ nodelete:
5463 ASSERT(ifp->if_ext_max == 5290 ASSERT(ifp->if_ext_max ==
5464 XFS_IFORK_SIZE(ip, whichfork) / (uint)sizeof(xfs_bmbt_rec_t)); 5291 XFS_IFORK_SIZE(ip, whichfork) / (uint)sizeof(xfs_bmbt_rec_t));
5465 error = 0; 5292 error = 0;
5466 if (delta && delta->xed_startoff != NULLFILEOFF) {
5467 /* A change was actually made.
5468 * Note that delta->xed_blockount is an offset at this
5469 * point and needs to be converted to a block count.
5470 */
5471 ASSERT(delta->xed_blockcount > delta->xed_startoff);
5472 delta->xed_blockcount -= delta->xed_startoff;
5473 }
5474error0: 5293error0:
5475 /* 5294 /*
5476 * Log everything. Do this after conversion, there's no point in 5295 * Log everything. Do this after conversion, there's no point in
@@ -5683,7 +5502,7 @@ xfs_getbmap(
5683 error = xfs_bmapi(NULL, ip, XFS_BB_TO_FSBT(mp, bmv->bmv_offset), 5502 error = xfs_bmapi(NULL, ip, XFS_BB_TO_FSBT(mp, bmv->bmv_offset),
5684 XFS_BB_TO_FSB(mp, bmv->bmv_length), 5503 XFS_BB_TO_FSB(mp, bmv->bmv_length),
5685 bmapi_flags, NULL, 0, map, &nmap, 5504 bmapi_flags, NULL, 0, map, &nmap,
5686 NULL, NULL); 5505 NULL);
5687 if (error) 5506 if (error)
5688 goto out_free_map; 5507 goto out_free_map;
5689 ASSERT(nmap <= subnex); 5508 ASSERT(nmap <= subnex);
diff --git a/fs/xfs/xfs_bmap.h b/fs/xfs/xfs_bmap.h
index d9c8a39b2855..b13569a6179b 100644
--- a/fs/xfs/xfs_bmap.h
+++ b/fs/xfs/xfs_bmap.h
@@ -28,20 +28,6 @@ struct xfs_trans;
28extern kmem_zone_t *xfs_bmap_free_item_zone; 28extern kmem_zone_t *xfs_bmap_free_item_zone;
29 29
30/* 30/*
31 * DELTA: describe a change to the in-core extent list.
32 *
33 * Internally the use of xed_blockount is somewhat funky.
34 * xed_blockcount contains an offset much of the time because this
35 * makes merging changes easier. (xfs_fileoff_t and xfs_filblks_t are
36 * the same underlying type).
37 */
38typedef struct xfs_extdelta
39{
40 xfs_fileoff_t xed_startoff; /* offset of range */
41 xfs_filblks_t xed_blockcount; /* blocks in range */
42} xfs_extdelta_t;
43
44/*
45 * List of extents to be free "later". 31 * List of extents to be free "later".
46 * The list is kept sorted on xbf_startblock. 32 * The list is kept sorted on xbf_startblock.
47 */ 33 */
@@ -305,9 +291,7 @@ xfs_bmapi(
305 xfs_extlen_t total, /* total blocks needed */ 291 xfs_extlen_t total, /* total blocks needed */
306 struct xfs_bmbt_irec *mval, /* output: map values */ 292 struct xfs_bmbt_irec *mval, /* output: map values */
307 int *nmap, /* i/o: mval size/count */ 293 int *nmap, /* i/o: mval size/count */
308 xfs_bmap_free_t *flist, /* i/o: list extents to free */ 294 xfs_bmap_free_t *flist); /* i/o: list extents to free */
309 xfs_extdelta_t *delta); /* o: change made to incore
310 extents */
311 295
312/* 296/*
313 * Map file blocks to filesystem blocks, simple version. 297 * Map file blocks to filesystem blocks, simple version.
@@ -341,8 +325,6 @@ xfs_bunmapi(
341 xfs_fsblock_t *firstblock, /* first allocated block 325 xfs_fsblock_t *firstblock, /* first allocated block
342 controls a.g. for allocs */ 326 controls a.g. for allocs */
343 xfs_bmap_free_t *flist, /* i/o: list extents to free */ 327 xfs_bmap_free_t *flist, /* i/o: list extents to free */
344 xfs_extdelta_t *delta, /* o: change made to incore
345 extents */
346 int *done); /* set if not done yet */ 328 int *done); /* set if not done yet */
347 329
348/* 330/*
diff --git a/fs/xfs/xfs_da_btree.c b/fs/xfs/xfs_da_btree.c
index 731f1f41eca1..2adfb761ab13 100644
--- a/fs/xfs/xfs_da_btree.c
+++ b/fs/xfs/xfs_da_btree.c
@@ -1596,7 +1596,7 @@ xfs_da_grow_inode(xfs_da_args_t *args, xfs_dablk_t *new_blkno)
1596 xfs_bmapi_aflag(w)|XFS_BMAPI_WRITE|XFS_BMAPI_METADATA| 1596 xfs_bmapi_aflag(w)|XFS_BMAPI_WRITE|XFS_BMAPI_METADATA|
1597 XFS_BMAPI_CONTIG, 1597 XFS_BMAPI_CONTIG,
1598 args->firstblock, args->total, &map, &nmap, 1598 args->firstblock, args->total, &map, &nmap,
1599 args->flist, NULL))) { 1599 args->flist))) {
1600 return error; 1600 return error;
1601 } 1601 }
1602 ASSERT(nmap <= 1); 1602 ASSERT(nmap <= 1);
@@ -1617,8 +1617,7 @@ xfs_da_grow_inode(xfs_da_args_t *args, xfs_dablk_t *new_blkno)
1617 xfs_bmapi_aflag(w)|XFS_BMAPI_WRITE| 1617 xfs_bmapi_aflag(w)|XFS_BMAPI_WRITE|
1618 XFS_BMAPI_METADATA, 1618 XFS_BMAPI_METADATA,
1619 args->firstblock, args->total, 1619 args->firstblock, args->total,
1620 &mapp[mapi], &nmap, args->flist, 1620 &mapp[mapi], &nmap, args->flist))) {
1621 NULL))) {
1622 kmem_free(mapp); 1621 kmem_free(mapp);
1623 return error; 1622 return error;
1624 } 1623 }
@@ -1879,7 +1878,7 @@ xfs_da_shrink_inode(xfs_da_args_t *args, xfs_dablk_t dead_blkno,
1879 */ 1878 */
1880 if ((error = xfs_bunmapi(tp, dp, dead_blkno, count, 1879 if ((error = xfs_bunmapi(tp, dp, dead_blkno, count,
1881 xfs_bmapi_aflag(w)|XFS_BMAPI_METADATA, 1880 xfs_bmapi_aflag(w)|XFS_BMAPI_METADATA,
1882 0, args->firstblock, args->flist, NULL, 1881 0, args->firstblock, args->flist,
1883 &done)) == ENOSPC) { 1882 &done)) == ENOSPC) {
1884 if (w != XFS_DATA_FORK) 1883 if (w != XFS_DATA_FORK)
1885 break; 1884 break;
@@ -1984,7 +1983,7 @@ xfs_da_do_buf(
1984 nfsb, 1983 nfsb,
1985 XFS_BMAPI_METADATA | 1984 XFS_BMAPI_METADATA |
1986 xfs_bmapi_aflag(whichfork), 1985 xfs_bmapi_aflag(whichfork),
1987 NULL, 0, mapp, &nmap, NULL, NULL))) 1986 NULL, 0, mapp, &nmap, NULL)))
1988 goto exit0; 1987 goto exit0;
1989 } 1988 }
1990 } else { 1989 } else {
diff --git a/fs/xfs/xfs_dir2.c b/fs/xfs/xfs_dir2.c
index 9c279ede05c5..b53960a5f41e 100644
--- a/fs/xfs/xfs_dir2.c
+++ b/fs/xfs/xfs_dir2.c
@@ -547,7 +547,7 @@ xfs_dir2_grow_inode(
547 if ((error = xfs_bmapi(tp, dp, bno, count, 547 if ((error = xfs_bmapi(tp, dp, bno, count,
548 XFS_BMAPI_WRITE|XFS_BMAPI_METADATA|XFS_BMAPI_CONTIG, 548 XFS_BMAPI_WRITE|XFS_BMAPI_METADATA|XFS_BMAPI_CONTIG,
549 args->firstblock, args->total, &map, &nmap, 549 args->firstblock, args->total, &map, &nmap,
550 args->flist, NULL))) 550 args->flist)))
551 return error; 551 return error;
552 ASSERT(nmap <= 1); 552 ASSERT(nmap <= 1);
553 if (nmap == 1) { 553 if (nmap == 1) {
@@ -579,8 +579,7 @@ xfs_dir2_grow_inode(
579 if ((error = xfs_bmapi(tp, dp, b, c, 579 if ((error = xfs_bmapi(tp, dp, b, c,
580 XFS_BMAPI_WRITE|XFS_BMAPI_METADATA, 580 XFS_BMAPI_WRITE|XFS_BMAPI_METADATA,
581 args->firstblock, args->total, 581 args->firstblock, args->total,
582 &mapp[mapi], &nmap, args->flist, 582 &mapp[mapi], &nmap, args->flist))) {
583 NULL))) {
584 kmem_free(mapp); 583 kmem_free(mapp);
585 return error; 584 return error;
586 } 585 }
@@ -713,7 +712,7 @@ xfs_dir2_shrink_inode(
713 */ 712 */
714 if ((error = xfs_bunmapi(tp, dp, da, mp->m_dirblkfsbs, 713 if ((error = xfs_bunmapi(tp, dp, da, mp->m_dirblkfsbs,
715 XFS_BMAPI_METADATA, 0, args->firstblock, args->flist, 714 XFS_BMAPI_METADATA, 0, args->firstblock, args->flist,
716 NULL, &done))) { 715 &done))) {
717 /* 716 /*
718 * ENOSPC actually can happen if we're in a removename with 717 * ENOSPC actually can happen if we're in a removename with
719 * no space reservation, and the resulting block removal 718 * no space reservation, and the resulting block removal
diff --git a/fs/xfs/xfs_dir2_leaf.c b/fs/xfs/xfs_dir2_leaf.c
index 586b010e58b4..504be8640e91 100644
--- a/fs/xfs/xfs_dir2_leaf.c
+++ b/fs/xfs/xfs_dir2_leaf.c
@@ -873,7 +873,7 @@ xfs_dir2_leaf_getdents(
873 xfs_dir2_byte_to_da(mp, 873 xfs_dir2_byte_to_da(mp,
874 XFS_DIR2_LEAF_OFFSET) - map_off, 874 XFS_DIR2_LEAF_OFFSET) - map_off,
875 XFS_BMAPI_METADATA, NULL, 0, 875 XFS_BMAPI_METADATA, NULL, 0,
876 &map[map_valid], &nmap, NULL, NULL); 876 &map[map_valid], &nmap, NULL);
877 /* 877 /*
878 * Don't know if we should ignore this or 878 * Don't know if we should ignore this or
879 * try to return an error. 879 * try to return an error.
diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c
index 1e6ae68f91af..5715a9d8bcd6 100644
--- a/fs/xfs/xfs_inode.c
+++ b/fs/xfs/xfs_inode.c
@@ -1222,7 +1222,7 @@ xfs_isize_check(
1222 (xfs_ufsize_t)XFS_MAXIOFFSET(mp)) - 1222 (xfs_ufsize_t)XFS_MAXIOFFSET(mp)) -
1223 map_first), 1223 map_first),
1224 XFS_BMAPI_ENTIRE, NULL, 0, imaps, &nimaps, 1224 XFS_BMAPI_ENTIRE, NULL, 0, imaps, &nimaps,
1225 NULL, NULL)) 1225 NULL))
1226 return; 1226 return;
1227 ASSERT(nimaps == 1); 1227 ASSERT(nimaps == 1);
1228 ASSERT(imaps[0].br_startblock == HOLESTARTBLOCK); 1228 ASSERT(imaps[0].br_startblock == HOLESTARTBLOCK);
@@ -1588,7 +1588,7 @@ xfs_itruncate_finish(
1588 xfs_bmapi_aflag(fork), 1588 xfs_bmapi_aflag(fork),
1589 XFS_ITRUNC_MAX_EXTENTS, 1589 XFS_ITRUNC_MAX_EXTENTS,
1590 &first_block, &free_list, 1590 &first_block, &free_list,
1591 NULL, &done); 1591 &done);
1592 if (error) { 1592 if (error) {
1593 /* 1593 /*
1594 * If the bunmapi call encounters an error, 1594 * If the bunmapi call encounters an error,
diff --git a/fs/xfs/xfs_iomap.c b/fs/xfs/xfs_iomap.c
index aeac00294a18..39ad46b3ed46 100644
--- a/fs/xfs/xfs_iomap.c
+++ b/fs/xfs/xfs_iomap.c
@@ -118,7 +118,7 @@ xfs_iomap(
118 error = xfs_bmapi(NULL, ip, offset_fsb, 118 error = xfs_bmapi(NULL, ip, offset_fsb,
119 (xfs_filblks_t)(end_fsb - offset_fsb), 119 (xfs_filblks_t)(end_fsb - offset_fsb),
120 bmapi_flags, NULL, 0, imap, 120 bmapi_flags, NULL, 0, imap,
121 nimaps, NULL, NULL); 121 nimaps, NULL);
122 122
123 if (error) 123 if (error)
124 goto out; 124 goto out;
@@ -341,7 +341,7 @@ xfs_iomap_write_direct(
341 xfs_bmap_init(&free_list, &firstfsb); 341 xfs_bmap_init(&free_list, &firstfsb);
342 nimaps = 1; 342 nimaps = 1;
343 error = xfs_bmapi(tp, ip, offset_fsb, count_fsb, bmapi_flag, 343 error = xfs_bmapi(tp, ip, offset_fsb, count_fsb, bmapi_flag,
344 &firstfsb, 0, &imap, &nimaps, &free_list, NULL); 344 &firstfsb, 0, &imap, &nimaps, &free_list);
345 if (error) 345 if (error)
346 goto error0; 346 goto error0;
347 347
@@ -419,7 +419,7 @@ xfs_iomap_eof_want_preallocate(
419 imaps = nimaps; 419 imaps = nimaps;
420 firstblock = NULLFSBLOCK; 420 firstblock = NULLFSBLOCK;
421 error = xfs_bmapi(NULL, ip, start_fsb, count_fsb, 0, 421 error = xfs_bmapi(NULL, ip, start_fsb, count_fsb, 0,
422 &firstblock, 0, imap, &imaps, NULL, NULL); 422 &firstblock, 0, imap, &imaps, NULL);
423 if (error) 423 if (error)
424 return error; 424 return error;
425 for (n = 0; n < imaps; n++) { 425 for (n = 0; n < imaps; n++) {
@@ -494,7 +494,7 @@ retry:
494 (xfs_filblks_t)(last_fsb - offset_fsb), 494 (xfs_filblks_t)(last_fsb - offset_fsb),
495 XFS_BMAPI_DELAY | XFS_BMAPI_WRITE | 495 XFS_BMAPI_DELAY | XFS_BMAPI_WRITE |
496 XFS_BMAPI_ENTIRE, &firstblock, 1, imap, 496 XFS_BMAPI_ENTIRE, &firstblock, 1, imap,
497 &nimaps, NULL, NULL); 497 &nimaps, NULL);
498 if (error && (error != ENOSPC)) 498 if (error && (error != ENOSPC))
499 return XFS_ERROR(error); 499 return XFS_ERROR(error);
500 500
@@ -650,7 +650,7 @@ xfs_iomap_write_allocate(
650 /* Go get the actual blocks */ 650 /* Go get the actual blocks */
651 error = xfs_bmapi(tp, ip, map_start_fsb, count_fsb, 651 error = xfs_bmapi(tp, ip, map_start_fsb, count_fsb,
652 XFS_BMAPI_WRITE, &first_block, 1, 652 XFS_BMAPI_WRITE, &first_block, 1,
653 &imap, &nimaps, &free_list, NULL); 653 &imap, &nimaps, &free_list);
654 if (error) 654 if (error)
655 goto trans_cancel; 655 goto trans_cancel;
656 656
@@ -768,7 +768,7 @@ xfs_iomap_write_unwritten(
768 nimaps = 1; 768 nimaps = 1;
769 error = xfs_bmapi(tp, ip, offset_fsb, count_fsb, 769 error = xfs_bmapi(tp, ip, offset_fsb, count_fsb,
770 XFS_BMAPI_WRITE|XFS_BMAPI_CONVERT, &firstfsb, 770 XFS_BMAPI_WRITE|XFS_BMAPI_CONVERT, &firstfsb,
771 1, &imap, &nimaps, &free_list, NULL); 771 1, &imap, &nimaps, &free_list);
772 if (error) 772 if (error)
773 goto error_on_bmapi_transaction; 773 goto error_on_bmapi_transaction;
774 774
diff --git a/fs/xfs/xfs_rtalloc.c b/fs/xfs/xfs_rtalloc.c
index 8da5d89dcbcd..891260fea11e 100644
--- a/fs/xfs/xfs_rtalloc.c
+++ b/fs/xfs/xfs_rtalloc.c
@@ -122,7 +122,7 @@ xfs_growfs_rt_alloc(
122 cancelflags |= XFS_TRANS_ABORT; 122 cancelflags |= XFS_TRANS_ABORT;
123 error = xfs_bmapi(tp, ip, oblocks, nblocks - oblocks, 123 error = xfs_bmapi(tp, ip, oblocks, nblocks - oblocks,
124 XFS_BMAPI_WRITE | XFS_BMAPI_METADATA, &firstblock, 124 XFS_BMAPI_WRITE | XFS_BMAPI_METADATA, &firstblock,
125 resblks, &map, &nmap, &flist, NULL); 125 resblks, &map, &nmap, &flist);
126 if (!error && nmap < 1) 126 if (!error && nmap < 1)
127 error = XFS_ERROR(ENOSPC); 127 error = XFS_ERROR(ENOSPC);
128 if (error) 128 if (error)
diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c
index 130343a5d22d..ad599ccc416b 100644
--- a/fs/xfs/xfs_vnodeops.c
+++ b/fs/xfs/xfs_vnodeops.c
@@ -492,7 +492,7 @@ xfs_readlink_bmap(
492 int error = 0; 492 int error = 0;
493 493
494 error = xfs_bmapi(NULL, ip, 0, XFS_B_TO_FSB(mp, pathlen), 0, NULL, 0, 494 error = xfs_bmapi(NULL, ip, 0, XFS_B_TO_FSB(mp, pathlen), 0, NULL, 0,
495 mval, &nmaps, NULL, NULL); 495 mval, &nmaps, NULL);
496 if (error) 496 if (error)
497 goto out; 497 goto out;
498 498
@@ -596,7 +596,7 @@ xfs_free_eofblocks(
596 nimaps = 1; 596 nimaps = 1;
597 xfs_ilock(ip, XFS_ILOCK_SHARED); 597 xfs_ilock(ip, XFS_ILOCK_SHARED);
598 error = xfs_bmapi(NULL, ip, end_fsb, map_len, 0, 598 error = xfs_bmapi(NULL, ip, end_fsb, map_len, 0,
599 NULL, 0, &imap, &nimaps, NULL, NULL); 599 NULL, 0, &imap, &nimaps, NULL);
600 xfs_iunlock(ip, XFS_ILOCK_SHARED); 600 xfs_iunlock(ip, XFS_ILOCK_SHARED);
601 601
602 if (!error && (nimaps != 0) && 602 if (!error && (nimaps != 0) &&
@@ -733,7 +733,7 @@ xfs_inactive_symlink_rmt(
733 nmaps = ARRAY_SIZE(mval); 733 nmaps = ARRAY_SIZE(mval);
734 if ((error = xfs_bmapi(tp, ip, 0, XFS_B_TO_FSB(mp, size), 734 if ((error = xfs_bmapi(tp, ip, 0, XFS_B_TO_FSB(mp, size),
735 XFS_BMAPI_METADATA, &first_block, 0, mval, &nmaps, 735 XFS_BMAPI_METADATA, &first_block, 0, mval, &nmaps,
736 &free_list, NULL))) 736 &free_list)))
737 goto error0; 737 goto error0;
738 /* 738 /*
739 * Invalidate the block(s). 739 * Invalidate the block(s).
@@ -748,7 +748,7 @@ xfs_inactive_symlink_rmt(
748 * Unmap the dead block(s) to the free_list. 748 * Unmap the dead block(s) to the free_list.
749 */ 749 */
750 if ((error = xfs_bunmapi(tp, ip, 0, size, XFS_BMAPI_METADATA, nmaps, 750 if ((error = xfs_bunmapi(tp, ip, 0, size, XFS_BMAPI_METADATA, nmaps,
751 &first_block, &free_list, NULL, &done))) 751 &first_block, &free_list, &done)))
752 goto error1; 752 goto error1;
753 ASSERT(done); 753 ASSERT(done);
754 /* 754 /*
@@ -2095,7 +2095,7 @@ xfs_symlink(
2095 error = xfs_bmapi(tp, ip, first_fsb, fs_blocks, 2095 error = xfs_bmapi(tp, ip, first_fsb, fs_blocks,
2096 XFS_BMAPI_WRITE | XFS_BMAPI_METADATA, 2096 XFS_BMAPI_WRITE | XFS_BMAPI_METADATA,
2097 &first_block, resblks, mval, &nmaps, 2097 &first_block, resblks, mval, &nmaps,
2098 &free_list, NULL); 2098 &free_list);
2099 if (error) { 2099 if (error) {
2100 goto error1; 2100 goto error1;
2101 } 2101 }
@@ -2347,7 +2347,7 @@ xfs_alloc_file_space(
2347 error = xfs_bmapi(tp, ip, startoffset_fsb, 2347 error = xfs_bmapi(tp, ip, startoffset_fsb,
2348 allocatesize_fsb, bmapi_flag, 2348 allocatesize_fsb, bmapi_flag,
2349 &firstfsb, 0, imapp, &nimaps, 2349 &firstfsb, 0, imapp, &nimaps,
2350 &free_list, NULL); 2350 &free_list);
2351 if (error) { 2351 if (error) {
2352 goto error0; 2352 goto error0;
2353 } 2353 }
@@ -2436,7 +2436,7 @@ xfs_zero_remaining_bytes(
2436 offset_fsb = XFS_B_TO_FSBT(mp, offset); 2436 offset_fsb = XFS_B_TO_FSBT(mp, offset);
2437 nimap = 1; 2437 nimap = 1;
2438 error = xfs_bmapi(NULL, ip, offset_fsb, 1, 0, 2438 error = xfs_bmapi(NULL, ip, offset_fsb, 1, 0,
2439 NULL, 0, &imap, &nimap, NULL, NULL); 2439 NULL, 0, &imap, &nimap, NULL);
2440 if (error || nimap < 1) 2440 if (error || nimap < 1)
2441 break; 2441 break;
2442 ASSERT(imap.br_blockcount >= 1); 2442 ASSERT(imap.br_blockcount >= 1);
@@ -2556,7 +2556,7 @@ xfs_free_file_space(
2556 if (rt && !xfs_sb_version_hasextflgbit(&mp->m_sb)) { 2556 if (rt && !xfs_sb_version_hasextflgbit(&mp->m_sb)) {
2557 nimap = 1; 2557 nimap = 1;
2558 error = xfs_bmapi(NULL, ip, startoffset_fsb, 2558 error = xfs_bmapi(NULL, ip, startoffset_fsb,
2559 1, 0, NULL, 0, &imap, &nimap, NULL, NULL); 2559 1, 0, NULL, 0, &imap, &nimap, NULL);
2560 if (error) 2560 if (error)
2561 goto out_unlock_iolock; 2561 goto out_unlock_iolock;
2562 ASSERT(nimap == 0 || nimap == 1); 2562 ASSERT(nimap == 0 || nimap == 1);
@@ -2571,7 +2571,7 @@ xfs_free_file_space(
2571 } 2571 }
2572 nimap = 1; 2572 nimap = 1;
2573 error = xfs_bmapi(NULL, ip, endoffset_fsb - 1, 2573 error = xfs_bmapi(NULL, ip, endoffset_fsb - 1,
2574 1, 0, NULL, 0, &imap, &nimap, NULL, NULL); 2574 1, 0, NULL, 0, &imap, &nimap, NULL);
2575 if (error) 2575 if (error)
2576 goto out_unlock_iolock; 2576 goto out_unlock_iolock;
2577 ASSERT(nimap == 0 || nimap == 1); 2577 ASSERT(nimap == 0 || nimap == 1);
@@ -2647,7 +2647,7 @@ xfs_free_file_space(
2647 xfs_bmap_init(&free_list, &firstfsb); 2647 xfs_bmap_init(&free_list, &firstfsb);
2648 error = xfs_bunmapi(tp, ip, startoffset_fsb, 2648 error = xfs_bunmapi(tp, ip, startoffset_fsb,
2649 endoffset_fsb - startoffset_fsb, 2649 endoffset_fsb - startoffset_fsb,
2650 0, 2, &firstfsb, &free_list, NULL, &done); 2650 0, 2, &firstfsb, &free_list, &done);
2651 if (error) { 2651 if (error) {
2652 goto error0; 2652 goto error0;
2653 } 2653 }