diff options
-rw-r--r-- | fs/xfs/linux-2.6/xfs_aops.c | 4 | ||||
-rw-r--r-- | fs/xfs/linux-2.6/xfs_file.c | 4 | ||||
-rw-r--r-- | fs/xfs/quota/xfs_dquot.c | 4 | ||||
-rw-r--r-- | fs/xfs/quota/xfs_qm.c | 2 | ||||
-rw-r--r-- | fs/xfs/xfs_attr.c | 10 | ||||
-rw-r--r-- | fs/xfs/xfs_attr_leaf.c | 2 | ||||
-rw-r--r-- | fs/xfs/xfs_bmap.c | 217 | ||||
-rw-r--r-- | fs/xfs/xfs_bmap.h | 20 | ||||
-rw-r--r-- | fs/xfs/xfs_da_btree.c | 9 | ||||
-rw-r--r-- | fs/xfs/xfs_dir2.c | 7 | ||||
-rw-r--r-- | fs/xfs/xfs_dir2_leaf.c | 2 | ||||
-rw-r--r-- | fs/xfs/xfs_inode.c | 4 | ||||
-rw-r--r-- | fs/xfs/xfs_iomap.c | 12 | ||||
-rw-r--r-- | fs/xfs/xfs_rtalloc.c | 2 | ||||
-rw-r--r-- | fs/xfs/xfs_vnodeops.c | 20 |
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 e42c0ba6688..b25d11a3d84 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 9a9b446a58a..22edad7a0be 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 56f366e327f..e1a2f6800e0 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 b32c3fb9e77..7a33d65e2d2 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 f3ca7186155..c2568242a90 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 e4d48b2cee1..a6cff8edcdb 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 598a30ba314..d74fbec8062 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 | } | ||
1186 | done: | 1129 | done: |
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 | } | ||
1717 | done: | 1617 | done: |
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 | } | ||
2135 | done: | 1988 | done: |
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 | } | ||
3273 | done: | 3117 | done: |
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 | } | ||
5020 | error0: | 4852 | error0: |
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 | } | ||
5474 | error0: | 5293 | error0: |
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 d9c8a39b285..b13569a6179 100644 --- a/fs/xfs/xfs_bmap.h +++ b/fs/xfs/xfs_bmap.h | |||
@@ -28,20 +28,6 @@ struct xfs_trans; | |||
28 | extern kmem_zone_t *xfs_bmap_free_item_zone; | 28 | extern 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 | */ | ||
38 | typedef 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 731f1f41eca..2adfb761ab1 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 9c279ede05c..b53960a5f41 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 586b010e58b..504be8640e9 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 1e6ae68f91a..5715a9d8bcd 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 aeac00294a1..39ad46b3ed4 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 8da5d89dcbc..891260fea11 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 130343a5d22..ad599ccc416 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 | } |