Commit b4e9181e authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Alex Elder

xfs: remove unused delta tracking code in xfs_bmapi

This code was introduced four years ago in commit
3e57ecf6 without any review and has
been unused since.  Remove it just as the rest of the code introduced
in that commit to reduce that stack usage and complexity in this central
piece of code.
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarDave Chinner <dchinner@redhat.com>
parent cd8b0bb3
...@@ -974,7 +974,7 @@ xfs_aops_discard_page( ...@@ -974,7 +974,7 @@ xfs_aops_discard_page(
*/ */
error = xfs_bmapi(NULL, ip, offset_fsb, 1, error = xfs_bmapi(NULL, ip, offset_fsb, 1,
XFS_BMAPI_ENTIRE, NULL, 0, &imap, XFS_BMAPI_ENTIRE, NULL, 0, &imap,
&nimaps, NULL, NULL); &nimaps, NULL);
if (error) { if (error) {
/* something screwed, just bail */ /* something screwed, just bail */
...@@ -1002,7 +1002,7 @@ xfs_aops_discard_page( ...@@ -1002,7 +1002,7 @@ xfs_aops_discard_page(
*/ */
xfs_bmap_init(&flist, &firstblock); xfs_bmap_init(&flist, &firstblock);
error = xfs_bunmapi(NULL, ip, offset_fsb, 1, 0, 1, &firstblock, error = xfs_bunmapi(NULL, ip, offset_fsb, 1, 0, 1, &firstblock,
&flist, NULL, &done); &flist, &done);
ASSERT(!flist.xbf_count && !flist.xbf_first); ASSERT(!flist.xbf_count && !flist.xbf_first);
if (error) { if (error) {
......
...@@ -414,7 +414,7 @@ xfs_zero_last_block( ...@@ -414,7 +414,7 @@ xfs_zero_last_block(
last_fsb = XFS_B_TO_FSBT(mp, isize); last_fsb = XFS_B_TO_FSBT(mp, isize);
nimaps = 1; nimaps = 1;
error = xfs_bmapi(NULL, ip, last_fsb, 1, 0, NULL, 0, &imap, error = xfs_bmapi(NULL, ip, last_fsb, 1, 0, NULL, 0, &imap,
&nimaps, NULL, NULL); &nimaps, NULL);
if (error) { if (error) {
return error; return error;
} }
...@@ -509,7 +509,7 @@ xfs_zero_eof( ...@@ -509,7 +509,7 @@ xfs_zero_eof(
nimaps = 1; nimaps = 1;
zero_count_fsb = end_zero_fsb - start_zero_fsb + 1; zero_count_fsb = end_zero_fsb - start_zero_fsb + 1;
error = xfs_bmapi(NULL, ip, start_zero_fsb, zero_count_fsb, error = xfs_bmapi(NULL, ip, start_zero_fsb, zero_count_fsb,
0, NULL, 0, &imap, &nimaps, NULL, NULL); 0, NULL, 0, &imap, &nimaps, NULL);
if (error) { if (error) {
ASSERT(xfs_isilocked(ip, XFS_ILOCK_EXCL|XFS_IOLOCK_EXCL)); ASSERT(xfs_isilocked(ip, XFS_ILOCK_EXCL|XFS_IOLOCK_EXCL));
return error; return error;
......
...@@ -385,7 +385,7 @@ xfs_qm_dqalloc( ...@@ -385,7 +385,7 @@ xfs_qm_dqalloc(
XFS_BMAPI_METADATA | XFS_BMAPI_WRITE, XFS_BMAPI_METADATA | XFS_BMAPI_WRITE,
&firstblock, &firstblock,
XFS_QM_DQALLOC_SPACE_RES(mp), XFS_QM_DQALLOC_SPACE_RES(mp),
&map, &nmaps, &flist, NULL))) { &map, &nmaps, &flist))) {
goto error0; goto error0;
} }
ASSERT(map.br_blockcount == XFS_DQUOT_CLUSTER_SIZE_FSB); ASSERT(map.br_blockcount == XFS_DQUOT_CLUSTER_SIZE_FSB);
...@@ -501,7 +501,7 @@ xfs_qm_dqtobp( ...@@ -501,7 +501,7 @@ xfs_qm_dqtobp(
error = xfs_bmapi(NULL, quotip, dqp->q_fileoffset, error = xfs_bmapi(NULL, quotip, dqp->q_fileoffset,
XFS_DQUOT_CLUSTER_SIZE_FSB, XFS_DQUOT_CLUSTER_SIZE_FSB,
XFS_BMAPI_METADATA, XFS_BMAPI_METADATA,
NULL, 0, &map, &nmaps, NULL, NULL); NULL, 0, &map, &nmaps, NULL);
xfs_iunlock(quotip, XFS_ILOCK_SHARED); xfs_iunlock(quotip, XFS_ILOCK_SHARED);
if (error) if (error)
......
...@@ -1490,7 +1490,7 @@ xfs_qm_dqiterate( ...@@ -1490,7 +1490,7 @@ xfs_qm_dqiterate(
maxlblkcnt - lblkno, maxlblkcnt - lblkno,
XFS_BMAPI_METADATA, XFS_BMAPI_METADATA,
NULL, NULL,
0, map, &nmaps, NULL, NULL); 0, map, &nmaps, NULL);
xfs_iunlock(qip, XFS_ILOCK_SHARED); xfs_iunlock(qip, XFS_ILOCK_SHARED);
if (error) if (error)
break; break;
......
...@@ -1977,7 +1977,7 @@ xfs_attr_rmtval_get(xfs_da_args_t *args) ...@@ -1977,7 +1977,7 @@ xfs_attr_rmtval_get(xfs_da_args_t *args)
error = xfs_bmapi(args->trans, args->dp, (xfs_fileoff_t)lblkno, error = xfs_bmapi(args->trans, args->dp, (xfs_fileoff_t)lblkno,
args->rmtblkcnt, args->rmtblkcnt,
XFS_BMAPI_ATTRFORK | XFS_BMAPI_METADATA, XFS_BMAPI_ATTRFORK | XFS_BMAPI_METADATA,
NULL, 0, map, &nmap, NULL, NULL); NULL, 0, map, &nmap, NULL);
if (error) if (error)
return(error); return(error);
ASSERT(nmap >= 1); ASSERT(nmap >= 1);
...@@ -2056,7 +2056,7 @@ xfs_attr_rmtval_set(xfs_da_args_t *args) ...@@ -2056,7 +2056,7 @@ xfs_attr_rmtval_set(xfs_da_args_t *args)
XFS_BMAPI_ATTRFORK | XFS_BMAPI_METADATA | XFS_BMAPI_ATTRFORK | XFS_BMAPI_METADATA |
XFS_BMAPI_WRITE, XFS_BMAPI_WRITE,
args->firstblock, args->total, &map, &nmap, args->firstblock, args->total, &map, &nmap,
args->flist, NULL); args->flist);
if (!error) { if (!error) {
error = xfs_bmap_finish(&args->trans, args->flist, error = xfs_bmap_finish(&args->trans, args->flist,
&committed); &committed);
...@@ -2107,7 +2107,7 @@ xfs_attr_rmtval_set(xfs_da_args_t *args) ...@@ -2107,7 +2107,7 @@ xfs_attr_rmtval_set(xfs_da_args_t *args)
args->rmtblkcnt, args->rmtblkcnt,
XFS_BMAPI_ATTRFORK | XFS_BMAPI_METADATA, XFS_BMAPI_ATTRFORK | XFS_BMAPI_METADATA,
args->firstblock, 0, &map, &nmap, args->firstblock, 0, &map, &nmap,
NULL, NULL); NULL);
if (error) { if (error) {
return(error); return(error);
} }
...@@ -2172,7 +2172,7 @@ xfs_attr_rmtval_remove(xfs_da_args_t *args) ...@@ -2172,7 +2172,7 @@ xfs_attr_rmtval_remove(xfs_da_args_t *args)
args->rmtblkcnt, args->rmtblkcnt,
XFS_BMAPI_ATTRFORK | XFS_BMAPI_METADATA, XFS_BMAPI_ATTRFORK | XFS_BMAPI_METADATA,
args->firstblock, 0, &map, &nmap, args->firstblock, 0, &map, &nmap,
args->flist, NULL); args->flist);
if (error) { if (error) {
return(error); return(error);
} }
...@@ -2210,7 +2210,7 @@ xfs_attr_rmtval_remove(xfs_da_args_t *args) ...@@ -2210,7 +2210,7 @@ xfs_attr_rmtval_remove(xfs_da_args_t *args)
error = xfs_bunmapi(args->trans, args->dp, lblkno, blkcnt, error = xfs_bunmapi(args->trans, args->dp, lblkno, blkcnt,
XFS_BMAPI_ATTRFORK | XFS_BMAPI_METADATA, XFS_BMAPI_ATTRFORK | XFS_BMAPI_METADATA,
1, args->firstblock, args->flist, 1, args->firstblock, args->flist,
NULL, &done); &done);
if (!error) { if (!error) {
error = xfs_bmap_finish(&args->trans, args->flist, error = xfs_bmap_finish(&args->trans, args->flist,
&committed); &committed);
......
...@@ -2928,7 +2928,7 @@ xfs_attr_leaf_freextent(xfs_trans_t **trans, xfs_inode_t *dp, ...@@ -2928,7 +2928,7 @@ xfs_attr_leaf_freextent(xfs_trans_t **trans, xfs_inode_t *dp,
nmap = 1; nmap = 1;
error = xfs_bmapi(*trans, dp, (xfs_fileoff_t)tblkno, tblkcnt, error = xfs_bmapi(*trans, dp, (xfs_fileoff_t)tblkno, tblkcnt,
XFS_BMAPI_ATTRFORK | XFS_BMAPI_METADATA, XFS_BMAPI_ATTRFORK | XFS_BMAPI_METADATA,
NULL, 0, &map, &nmap, NULL, NULL); NULL, 0, &map, &nmap, NULL);
if (error) { if (error) {
return(error); return(error);
} }
......
...@@ -101,7 +101,6 @@ xfs_bmap_add_extent( ...@@ -101,7 +101,6 @@ xfs_bmap_add_extent(
xfs_fsblock_t *first, /* pointer to firstblock variable */ xfs_fsblock_t *first, /* pointer to firstblock variable */
xfs_bmap_free_t *flist, /* list of extents to be freed */ xfs_bmap_free_t *flist, /* list of extents to be freed */
int *logflagsp, /* inode logging flags */ int *logflagsp, /* inode logging flags */
xfs_extdelta_t *delta, /* Change made to incore extents */
int whichfork, /* data or attr fork */ int whichfork, /* data or attr fork */
int rsvd); /* OK to allocate reserved blocks */ int rsvd); /* OK to allocate reserved blocks */
...@@ -119,7 +118,6 @@ xfs_bmap_add_extent_delay_real( ...@@ -119,7 +118,6 @@ xfs_bmap_add_extent_delay_real(
xfs_fsblock_t *first, /* pointer to firstblock variable */ xfs_fsblock_t *first, /* pointer to firstblock variable */
xfs_bmap_free_t *flist, /* list of extents to be freed */ xfs_bmap_free_t *flist, /* list of extents to be freed */
int *logflagsp, /* inode logging flags */ int *logflagsp, /* inode logging flags */
xfs_extdelta_t *delta, /* Change made to incore extents */
int rsvd); /* OK to allocate reserved blocks */ int rsvd); /* OK to allocate reserved blocks */
/* /*
...@@ -132,7 +130,6 @@ xfs_bmap_add_extent_hole_delay( ...@@ -132,7 +130,6 @@ xfs_bmap_add_extent_hole_delay(
xfs_extnum_t idx, /* extent number to update/insert */ xfs_extnum_t idx, /* extent number to update/insert */
xfs_bmbt_irec_t *new, /* new data to add to file extents */ xfs_bmbt_irec_t *new, /* new data to add to file extents */
int *logflagsp,/* inode logging flags */ int *logflagsp,/* inode logging flags */
xfs_extdelta_t *delta, /* Change made to incore extents */
int rsvd); /* OK to allocate reserved blocks */ int rsvd); /* OK to allocate reserved blocks */
/* /*
...@@ -146,7 +143,6 @@ xfs_bmap_add_extent_hole_real( ...@@ -146,7 +143,6 @@ xfs_bmap_add_extent_hole_real(
xfs_btree_cur_t *cur, /* if null, not a btree */ xfs_btree_cur_t *cur, /* if null, not a btree */
xfs_bmbt_irec_t *new, /* new data to add to file extents */ xfs_bmbt_irec_t *new, /* new data to add to file extents */
int *logflagsp, /* inode logging flags */ int *logflagsp, /* inode logging flags */
xfs_extdelta_t *delta, /* Change made to incore extents */
int whichfork); /* data or attr fork */ int whichfork); /* data or attr fork */
/* /*
...@@ -159,8 +155,7 @@ xfs_bmap_add_extent_unwritten_real( ...@@ -159,8 +155,7 @@ xfs_bmap_add_extent_unwritten_real(
xfs_extnum_t idx, /* extent number to update/insert */ xfs_extnum_t idx, /* extent number to update/insert */
xfs_btree_cur_t **curp, /* if *curp is null, not a btree */ xfs_btree_cur_t **curp, /* if *curp is null, not a btree */
xfs_bmbt_irec_t *new, /* new data to add to file extents */ xfs_bmbt_irec_t *new, /* new data to add to file extents */
int *logflagsp, /* inode logging flags */ int *logflagsp); /* inode logging flags */
xfs_extdelta_t *delta); /* Change made to incore extents */
/* /*
* xfs_bmap_alloc is called by xfs_bmapi to allocate an extent for a file. * xfs_bmap_alloc is called by xfs_bmapi to allocate an extent for a file.
...@@ -197,7 +192,6 @@ xfs_bmap_del_extent( ...@@ -197,7 +192,6 @@ xfs_bmap_del_extent(
xfs_btree_cur_t *cur, /* if null, not a btree */ xfs_btree_cur_t *cur, /* if null, not a btree */
xfs_bmbt_irec_t *new, /* new data to add to file extents */ xfs_bmbt_irec_t *new, /* new data to add to file extents */
int *logflagsp,/* inode logging flags */ int *logflagsp,/* inode logging flags */
xfs_extdelta_t *delta, /* Change made to incore extents */
int whichfork, /* data or attr fork */ int whichfork, /* data or attr fork */
int rsvd); /* OK to allocate reserved blocks */ int rsvd); /* OK to allocate reserved blocks */
...@@ -486,7 +480,6 @@ xfs_bmap_add_extent( ...@@ -486,7 +480,6 @@ xfs_bmap_add_extent(
xfs_fsblock_t *first, /* pointer to firstblock variable */ xfs_fsblock_t *first, /* pointer to firstblock variable */
xfs_bmap_free_t *flist, /* list of extents to be freed */ xfs_bmap_free_t *flist, /* list of extents to be freed */
int *logflagsp, /* inode logging flags */ int *logflagsp, /* inode logging flags */
xfs_extdelta_t *delta, /* Change made to incore extents */
int whichfork, /* data or attr fork */ int whichfork, /* data or attr fork */
int rsvd) /* OK to use reserved data blocks */ int rsvd) /* OK to use reserved data blocks */
{ {
...@@ -521,15 +514,6 @@ xfs_bmap_add_extent( ...@@ -521,15 +514,6 @@ xfs_bmap_add_extent(
logflags = XFS_ILOG_CORE | xfs_ilog_fext(whichfork); logflags = XFS_ILOG_CORE | xfs_ilog_fext(whichfork);
} else } else
logflags = 0; logflags = 0;
/* DELTA: single new extent */
if (delta) {
if (delta->xed_startoff > new->br_startoff)
delta->xed_startoff = new->br_startoff;
if (delta->xed_blockcount <
new->br_startoff + new->br_blockcount)
delta->xed_blockcount = new->br_startoff +
new->br_blockcount;
}
} }
/* /*
* Any kind of new delayed allocation goes here. * Any kind of new delayed allocation goes here.
...@@ -539,7 +523,7 @@ xfs_bmap_add_extent( ...@@ -539,7 +523,7 @@ xfs_bmap_add_extent(
ASSERT((cur->bc_private.b.flags & ASSERT((cur->bc_private.b.flags &
XFS_BTCUR_BPRV_WASDEL) == 0); XFS_BTCUR_BPRV_WASDEL) == 0);
if ((error = xfs_bmap_add_extent_hole_delay(ip, idx, new, if ((error = xfs_bmap_add_extent_hole_delay(ip, idx, new,
&logflags, delta, rsvd))) &logflags, rsvd)))
goto done; goto done;
} }
/* /*
...@@ -550,7 +534,7 @@ xfs_bmap_add_extent( ...@@ -550,7 +534,7 @@ xfs_bmap_add_extent(
ASSERT((cur->bc_private.b.flags & ASSERT((cur->bc_private.b.flags &
XFS_BTCUR_BPRV_WASDEL) == 0); XFS_BTCUR_BPRV_WASDEL) == 0);
if ((error = xfs_bmap_add_extent_hole_real(ip, idx, cur, new, if ((error = xfs_bmap_add_extent_hole_real(ip, idx, cur, new,
&logflags, delta, whichfork))) &logflags, whichfork)))
goto done; goto done;
} else { } else {
xfs_bmbt_irec_t prev; /* old extent at offset idx */ xfs_bmbt_irec_t prev; /* old extent at offset idx */
...@@ -575,17 +559,17 @@ xfs_bmap_add_extent( ...@@ -575,17 +559,17 @@ xfs_bmap_add_extent(
XFS_BTCUR_BPRV_WASDEL); XFS_BTCUR_BPRV_WASDEL);
if ((error = xfs_bmap_add_extent_delay_real(ip, if ((error = xfs_bmap_add_extent_delay_real(ip,
idx, &cur, new, &da_new, first, flist, idx, &cur, new, &da_new, first, flist,
&logflags, delta, rsvd))) &logflags, rsvd)))
goto done; goto done;
} else if (new->br_state == XFS_EXT_NORM) { } else if (new->br_state == XFS_EXT_NORM) {
ASSERT(new->br_state == XFS_EXT_NORM); ASSERT(new->br_state == XFS_EXT_NORM);
if ((error = xfs_bmap_add_extent_unwritten_real( if ((error = xfs_bmap_add_extent_unwritten_real(
ip, idx, &cur, new, &logflags, delta))) ip, idx, &cur, new, &logflags)))
goto done; goto done;
} else { } else {
ASSERT(new->br_state == XFS_EXT_UNWRITTEN); ASSERT(new->br_state == XFS_EXT_UNWRITTEN);
if ((error = xfs_bmap_add_extent_unwritten_real( if ((error = xfs_bmap_add_extent_unwritten_real(
ip, idx, &cur, new, &logflags, delta))) ip, idx, &cur, new, &logflags)))
goto done; goto done;
} }
ASSERT(*curp == cur || *curp == NULL); ASSERT(*curp == cur || *curp == NULL);
...@@ -598,7 +582,7 @@ xfs_bmap_add_extent( ...@@ -598,7 +582,7 @@ xfs_bmap_add_extent(
ASSERT((cur->bc_private.b.flags & ASSERT((cur->bc_private.b.flags &
XFS_BTCUR_BPRV_WASDEL) == 0); XFS_BTCUR_BPRV_WASDEL) == 0);
if ((error = xfs_bmap_add_extent_hole_real(ip, idx, cur, if ((error = xfs_bmap_add_extent_hole_real(ip, idx, cur,
new, &logflags, delta, whichfork))) new, &logflags, whichfork)))
goto done; goto done;
} }
} }
...@@ -663,7 +647,6 @@ xfs_bmap_add_extent_delay_real( ...@@ -663,7 +647,6 @@ xfs_bmap_add_extent_delay_real(
xfs_fsblock_t *first, /* pointer to firstblock variable */ xfs_fsblock_t *first, /* pointer to firstblock variable */
xfs_bmap_free_t *flist, /* list of extents to be freed */ xfs_bmap_free_t *flist, /* list of extents to be freed */
int *logflagsp, /* inode logging flags */ int *logflagsp, /* inode logging flags */
xfs_extdelta_t *delta, /* Change made to incore extents */
int rsvd) /* OK to use reserved data block allocation */ int rsvd) /* OK to use reserved data block allocation */
{ {
xfs_btree_cur_t *cur; /* btree cursor */ xfs_btree_cur_t *cur; /* btree cursor */
...@@ -794,11 +777,6 @@ xfs_bmap_add_extent_delay_real( ...@@ -794,11 +777,6 @@ xfs_bmap_add_extent_delay_real(
goto done; goto done;
} }
*dnew = 0; *dnew = 0;
/* DELTA: Three in-core extents are replaced by one. */
temp = LEFT.br_startoff;
temp2 = LEFT.br_blockcount +
PREV.br_blockcount +
RIGHT.br_blockcount;
break; break;
case BMAP_LEFT_FILLING | BMAP_RIGHT_FILLING | BMAP_LEFT_CONTIG: case BMAP_LEFT_FILLING | BMAP_RIGHT_FILLING | BMAP_LEFT_CONTIG:
...@@ -829,10 +807,6 @@ xfs_bmap_add_extent_delay_real( ...@@ -829,10 +807,6 @@ xfs_bmap_add_extent_delay_real(
goto done; goto done;
} }
*dnew = 0; *dnew = 0;
/* DELTA: Two in-core extents are replaced by one. */
temp = LEFT.br_startoff;
temp2 = LEFT.br_blockcount +
PREV.br_blockcount;
break; break;
case BMAP_LEFT_FILLING | BMAP_RIGHT_FILLING | BMAP_RIGHT_CONTIG: case BMAP_LEFT_FILLING | BMAP_RIGHT_FILLING | BMAP_RIGHT_CONTIG:
...@@ -864,10 +838,6 @@ xfs_bmap_add_extent_delay_real( ...@@ -864,10 +838,6 @@ xfs_bmap_add_extent_delay_real(
goto done; goto done;
} }
*dnew = 0; *dnew = 0;
/* DELTA: Two in-core extents are replaced by one. */
temp = PREV.br_startoff;
temp2 = PREV.br_blockcount +
RIGHT.br_blockcount;
break; break;
case BMAP_LEFT_FILLING | BMAP_RIGHT_FILLING: case BMAP_LEFT_FILLING | BMAP_RIGHT_FILLING:
...@@ -897,9 +867,6 @@ xfs_bmap_add_extent_delay_real( ...@@ -897,9 +867,6 @@ xfs_bmap_add_extent_delay_real(
XFS_WANT_CORRUPTED_GOTO(i == 1, done); XFS_WANT_CORRUPTED_GOTO(i == 1, done);
} }
*dnew = 0; *dnew = 0;
/* DELTA: The in-core extent described by new changed type. */
temp = new->br_startoff;
temp2 = new->br_blockcount;
break; break;
case BMAP_LEFT_FILLING | BMAP_LEFT_CONTIG: case BMAP_LEFT_FILLING | BMAP_LEFT_CONTIG:
...@@ -939,10 +906,6 @@ xfs_bmap_add_extent_delay_real( ...@@ -939,10 +906,6 @@ xfs_bmap_add_extent_delay_real(
xfs_bmbt_set_startblock(ep, nullstartblock((int)temp)); xfs_bmbt_set_startblock(ep, nullstartblock((int)temp));
trace_xfs_bmap_post_update(ip, idx, state, _THIS_IP_); trace_xfs_bmap_post_update(ip, idx, state, _THIS_IP_);
*dnew = temp; *dnew = temp;
/* DELTA: The boundary between two in-core extents moved. */
temp = LEFT.br_startoff;
temp2 = LEFT.br_blockcount +
PREV.br_blockcount;
break; break;
case BMAP_LEFT_FILLING: case BMAP_LEFT_FILLING:
...@@ -987,9 +950,6 @@ xfs_bmap_add_extent_delay_real( ...@@ -987,9 +950,6 @@ xfs_bmap_add_extent_delay_real(
xfs_bmbt_set_startblock(ep, nullstartblock((int)temp)); xfs_bmbt_set_startblock(ep, nullstartblock((int)temp));
trace_xfs_bmap_post_update(ip, idx + 1, state, _THIS_IP_); trace_xfs_bmap_post_update(ip, idx + 1, state, _THIS_IP_);
*dnew = temp; *dnew = temp;
/* DELTA: One in-core extent is split in two. */
temp = PREV.br_startoff;
temp2 = PREV.br_blockcount;
break; break;
case BMAP_RIGHT_FILLING | BMAP_RIGHT_CONTIG: case BMAP_RIGHT_FILLING | BMAP_RIGHT_CONTIG:
...@@ -1028,10 +988,6 @@ xfs_bmap_add_extent_delay_real( ...@@ -1028,10 +988,6 @@ xfs_bmap_add_extent_delay_real(
xfs_bmbt_set_startblock(ep, nullstartblock((int)temp)); xfs_bmbt_set_startblock(ep, nullstartblock((int)temp));
trace_xfs_bmap_post_update(ip, idx, state, _THIS_IP_); trace_xfs_bmap_post_update(ip, idx, state, _THIS_IP_);
*dnew = temp; *dnew = temp;
/* DELTA: The boundary between two in-core extents moved. */
temp = PREV.br_startoff;
temp2 = PREV.br_blockcount +
RIGHT.br_blockcount;
break; break;
case BMAP_RIGHT_FILLING: case BMAP_RIGHT_FILLING:
...@@ -1075,9 +1031,6 @@ xfs_bmap_add_extent_delay_real( ...@@ -1075,9 +1031,6 @@ xfs_bmap_add_extent_delay_real(
xfs_bmbt_set_startblock(ep, nullstartblock((int)temp)); xfs_bmbt_set_startblock(ep, nullstartblock((int)temp));
trace_xfs_bmap_post_update(ip, idx, state, _THIS_IP_); trace_xfs_bmap_post_update(ip, idx, state, _THIS_IP_);
*dnew = temp; *dnew = temp;
/* DELTA: One in-core extent is split in two. */
temp = PREV.br_startoff;
temp2 = PREV.br_blockcount;
break; break;
case 0: case 0:
...@@ -1158,9 +1111,6 @@ xfs_bmap_add_extent_delay_real( ...@@ -1158,9 +1111,6 @@ xfs_bmap_add_extent_delay_real(
nullstartblock((int)temp2)); nullstartblock((int)temp2));
trace_xfs_bmap_post_update(ip, idx + 2, state, _THIS_IP_); trace_xfs_bmap_post_update(ip, idx + 2, state, _THIS_IP_);
*dnew = temp + temp2; *dnew = temp + temp2;
/* DELTA: One in-core extent is split in three. */
temp = PREV.br_startoff;
temp2 = PREV.br_blockcount;
break; break;
case BMAP_LEFT_FILLING | BMAP_LEFT_CONTIG | BMAP_RIGHT_CONTIG: case BMAP_LEFT_FILLING | BMAP_LEFT_CONTIG | BMAP_RIGHT_CONTIG:
...@@ -1176,13 +1126,6 @@ xfs_bmap_add_extent_delay_real( ...@@ -1176,13 +1126,6 @@ xfs_bmap_add_extent_delay_real(
ASSERT(0); ASSERT(0);
} }
*curp = cur; *curp = cur;
if (delta) {
temp2 += temp;
if (delta->xed_startoff > temp)
delta->xed_startoff = temp;
if (delta->xed_blockcount < temp2)
delta->xed_blockcount = temp2;
}
done: done:
*logflagsp = rval; *logflagsp = rval;
return error; return error;
...@@ -1201,8 +1144,7 @@ xfs_bmap_add_extent_unwritten_real( ...@@ -1201,8 +1144,7 @@ xfs_bmap_add_extent_unwritten_real(
xfs_extnum_t idx, /* extent number to update/insert */ xfs_extnum_t idx, /* extent number to update/insert */
xfs_btree_cur_t **curp, /* if *curp is null, not a btree */ xfs_btree_cur_t **curp, /* if *curp is null, not a btree */
xfs_bmbt_irec_t *new, /* new data to add to file extents */ xfs_bmbt_irec_t *new, /* new data to add to file extents */
int *logflagsp, /* inode logging flags */ int *logflagsp) /* inode logging flags */
xfs_extdelta_t *delta) /* Change made to incore extents */
{ {
xfs_btree_cur_t *cur; /* btree cursor */ xfs_btree_cur_t *cur; /* btree cursor */
xfs_bmbt_rec_host_t *ep; /* extent entry for idx */ xfs_bmbt_rec_host_t *ep; /* extent entry for idx */
...@@ -1216,8 +1158,6 @@ xfs_bmap_add_extent_unwritten_real( ...@@ -1216,8 +1158,6 @@ xfs_bmap_add_extent_unwritten_real(
/* left is 0, right is 1, prev is 2 */ /* left is 0, right is 1, prev is 2 */
int rval=0; /* return value (logging flags) */ int rval=0; /* return value (logging flags) */
int state = 0;/* state bits, accessed thru macros */ int state = 0;/* state bits, accessed thru macros */
xfs_filblks_t temp=0;
xfs_filblks_t temp2=0;
#define LEFT r[0] #define LEFT r[0]
#define RIGHT r[1] #define RIGHT r[1]
...@@ -1338,11 +1278,6 @@ xfs_bmap_add_extent_unwritten_real( ...@@ -1338,11 +1278,6 @@ xfs_bmap_add_extent_unwritten_real(
RIGHT.br_blockcount, LEFT.br_state))) RIGHT.br_blockcount, LEFT.br_state)))
goto done; goto done;
} }
/* DELTA: Three in-core extents are replaced by one. */
temp = LEFT.br_startoff;
temp2 = LEFT.br_blockcount +
PREV.br_blockcount +
RIGHT.br_blockcount;
break; break;
case BMAP_LEFT_FILLING | BMAP_RIGHT_FILLING | BMAP_LEFT_CONTIG: case BMAP_LEFT_FILLING | BMAP_RIGHT_FILLING | BMAP_LEFT_CONTIG:
...@@ -1379,10 +1314,6 @@ xfs_bmap_add_extent_unwritten_real( ...@@ -1379,10 +1314,6 @@ xfs_bmap_add_extent_unwritten_real(
LEFT.br_state))) LEFT.br_state)))
goto done; goto done;
} }
/* DELTA: Two in-core extents are replaced by one. */
temp = LEFT.br_startoff;
temp2 = LEFT.br_blockcount +
PREV.br_blockcount;
break; break;
case BMAP_LEFT_FILLING | BMAP_RIGHT_FILLING | BMAP_RIGHT_CONTIG: case BMAP_LEFT_FILLING | BMAP_RIGHT_FILLING | BMAP_RIGHT_CONTIG:
...@@ -1419,10 +1350,6 @@ xfs_bmap_add_extent_unwritten_real( ...@@ -1419,10 +1350,6 @@ xfs_bmap_add_extent_unwritten_real(
newext))) newext)))
goto done; goto done;
} }
/* DELTA: Two in-core extents are replaced by one. */
temp = PREV.br_startoff;
temp2 = PREV.br_blockcount +
RIGHT.br_blockcount;
break; break;
case BMAP_LEFT_FILLING | BMAP_RIGHT_FILLING: case BMAP_LEFT_FILLING | BMAP_RIGHT_FILLING:
...@@ -1450,9 +1377,6 @@ xfs_bmap_add_extent_unwritten_real( ...@@ -1450,9 +1377,6 @@ xfs_bmap_add_extent_unwritten_real(
newext))) newext)))
goto done; goto done;
} }
/* DELTA: The in-core extent described by new changed type. */
temp = new->br_startoff;
temp2 = new->br_blockcount;
break; break;
case BMAP_LEFT_FILLING | BMAP_LEFT_CONTIG: case BMAP_LEFT_FILLING | BMAP_LEFT_CONTIG:
...@@ -1498,10 +1422,6 @@ xfs_bmap_add_extent_unwritten_real( ...@@ -1498,10 +1422,6 @@ xfs_bmap_add_extent_unwritten_real(
LEFT.br_state)) LEFT.br_state))
goto done; goto done;
} }
/* DELTA: The boundary between two in-core extents moved. */
temp = LEFT.br_startoff;
temp2 = LEFT.br_blockcount +
PREV.br_blockcount;
break; break;
case BMAP_LEFT_FILLING: case BMAP_LEFT_FILLING:
...@@ -1541,9 +1461,6 @@ xfs_bmap_add_extent_unwritten_real( ...@@ -1541,9 +1461,6 @@ xfs_bmap_add_extent_unwritten_real(
goto done; goto done;
XFS_WANT_CORRUPTED_GOTO(i == 1, done); XFS_WANT_CORRUPTED_GOTO(i == 1, done);
} }
/* DELTA: One in-core extent is split in two. */
temp = PREV.br_startoff;
temp2 = PREV.br_blockcount;
break; break;
case BMAP_RIGHT_FILLING | BMAP_RIGHT_CONTIG: case BMAP_RIGHT_FILLING | BMAP_RIGHT_CONTIG:
...@@ -1584,10 +1501,6 @@ xfs_bmap_add_extent_unwritten_real( ...@@ -1584,10 +1501,6 @@ xfs_bmap_add_extent_unwritten_real(
newext))) newext)))
goto done; goto done;
} }
/* DELTA: The boundary between two in-core extents moved. */
temp = PREV.br_startoff;
temp2 = PREV.br_blockcount +
RIGHT.br_blockcount;
break; break;
case BMAP_RIGHT_FILLING: case BMAP_RIGHT_FILLING:
...@@ -1627,9 +1540,6 @@ xfs_bmap_add_extent_unwritten_real( ...@@ -1627,9 +1540,6 @@ xfs_bmap_add_extent_unwritten_real(
goto done; goto done;
XFS_WANT_CORRUPTED_GOTO(i == 1, done); XFS_WANT_CORRUPTED_GOTO(i == 1, done);
} }
/* DELTA: One in-core extent is split in two. */
temp = PREV.br_startoff;
temp2 = PREV.br_blockcount;
break; break;
case 0: case 0:
...@@ -1689,9 +1599,6 @@ xfs_bmap_add_extent_unwritten_real( ...@@ -1689,9 +1599,6 @@ xfs_bmap_add_extent_unwritten_real(
goto done; goto done;
XFS_WANT_CORRUPTED_GOTO(i == 1, done); XFS_WANT_CORRUPTED_GOTO(i == 1, done);
} }
/* DELTA: One in-core extent is split in three. */
temp = PREV.br_startoff;
temp2 = PREV.br_blockcount;
break; break;
case BMAP_LEFT_FILLING | BMAP_LEFT_CONTIG | BMAP_RIGHT_CONTIG: case BMAP_LEFT_FILLING | BMAP_LEFT_CONTIG | BMAP_RIGHT_CONTIG:
...@@ -1707,13 +1614,6 @@ xfs_bmap_add_extent_unwritten_real( ...@@ -1707,13 +1614,6 @@ xfs_bmap_add_extent_unwritten_real(
ASSERT(0); ASSERT(0);
} }
*curp = cur; *curp = cur;
if (delta) {
temp2 += temp;
if (delta->xed_startoff > temp)
delta->xed_startoff = temp;
if (delta->xed_blockcount < temp2)
delta->xed_blockcount = temp2;
}
done: done:
*logflagsp = rval; *logflagsp = rval;
return error; return error;
...@@ -1733,7 +1633,6 @@ xfs_bmap_add_extent_hole_delay( ...@@ -1733,7 +1633,6 @@ xfs_bmap_add_extent_hole_delay(
xfs_extnum_t idx, /* extent number to update/insert */ xfs_extnum_t idx, /* extent number to update/insert */
xfs_bmbt_irec_t *new, /* new data to add to file extents */ xfs_bmbt_irec_t *new, /* new data to add to file extents */
int *logflagsp, /* inode logging flags */ int *logflagsp, /* inode logging flags */
xfs_extdelta_t *delta, /* Change made to incore extents */
int rsvd) /* OK to allocate reserved blocks */ int rsvd) /* OK to allocate reserved blocks */
{ {
xfs_bmbt_rec_host_t *ep; /* extent record for idx */ xfs_bmbt_rec_host_t *ep; /* extent record for idx */
...@@ -1744,7 +1643,6 @@ xfs_bmap_add_extent_hole_delay( ...@@ -1744,7 +1643,6 @@ xfs_bmap_add_extent_hole_delay(
xfs_bmbt_irec_t right; /* right neighbor extent entry */ xfs_bmbt_irec_t right; /* right neighbor extent entry */
int state; /* state bits, accessed thru macros */ int state; /* state bits, accessed thru macros */
xfs_filblks_t temp=0; /* temp for indirect calculations */ xfs_filblks_t temp=0; /* temp for indirect calculations */
xfs_filblks_t temp2=0;
ifp = XFS_IFORK_PTR(ip, XFS_DATA_FORK); ifp = XFS_IFORK_PTR(ip, XFS_DATA_FORK);
ep = xfs_iext_get_ext(ifp, idx); ep = xfs_iext_get_ext(ifp, idx);
...@@ -1816,9 +1714,6 @@ xfs_bmap_add_extent_hole_delay( ...@@ -1816,9 +1714,6 @@ xfs_bmap_add_extent_hole_delay(
xfs_iext_remove(ip, idx, 1, state); xfs_iext_remove(ip, idx, 1, state);
ip->i_df.if_lastex = idx - 1; ip->i_df.if_lastex = idx - 1;
/* DELTA: Two in-core extents were replaced by one. */
temp2 = temp;
temp = left.br_startoff;
break; break;
case BMAP_LEFT_CONTIG: case BMAP_LEFT_CONTIG:
...@@ -1838,9 +1733,6 @@ xfs_bmap_add_extent_hole_delay( ...@@ -1838,9 +1733,6 @@ xfs_bmap_add_extent_hole_delay(
trace_xfs_bmap_post_update(ip, idx - 1, state, _THIS_IP_); trace_xfs_bmap_post_update(ip, idx - 1, state, _THIS_IP_);
ip->i_df.if_lastex = idx - 1; ip->i_df.if_lastex = idx - 1;
/* DELTA: One in-core extent grew into a hole. */
temp2 = temp;
temp = left.br_startoff;
break; break;
case BMAP_RIGHT_CONTIG: case BMAP_RIGHT_CONTIG:
...@@ -1859,9 +1751,6 @@ xfs_bmap_add_extent_hole_delay( ...@@ -1859,9 +1751,6 @@ xfs_bmap_add_extent_hole_delay(
trace_xfs_bmap_post_update(ip, idx, state, _THIS_IP_); trace_xfs_bmap_post_update(ip, idx, state, _THIS_IP_);
ip->i_df.if_lastex = idx; ip->i_df.if_lastex = idx;
/* DELTA: One in-core extent grew into a hole. */
temp2 = temp;
temp = new->br_startoff;
break; break;
case 0: case 0:
...@@ -1873,9 +1762,6 @@ xfs_bmap_add_extent_hole_delay( ...@@ -1873,9 +1762,6 @@ xfs_bmap_add_extent_hole_delay(
oldlen = newlen = 0; oldlen = newlen = 0;
xfs_iext_insert(ip, idx, 1, new, state); xfs_iext_insert(ip, idx, 1, new, state);
ip->i_df.if_lastex = idx; ip->i_df.if_lastex = idx;
/* DELTA: A new in-core extent was added in a hole. */
temp2 = new->br_blockcount;
temp = new->br_startoff;
break; break;
} }
if (oldlen != newlen) { if (oldlen != newlen) {
...@@ -1886,13 +1772,6 @@ xfs_bmap_add_extent_hole_delay( ...@@ -1886,13 +1772,6 @@ xfs_bmap_add_extent_hole_delay(
* Nothing to do for disk quota accounting here. * Nothing to do for disk quota accounting here.
*/ */
} }
if (delta) {
temp2 += temp;
if (delta->xed_startoff > temp)
delta->xed_startoff = temp;
if (delta->xed_blockcount < temp2)
delta->xed_blockcount = temp2;
}
*logflagsp = 0; *logflagsp = 0;
return 0; return 0;
} }
...@@ -1908,7 +1787,6 @@ xfs_bmap_add_extent_hole_real( ...@@ -1908,7 +1787,6 @@ xfs_bmap_add_extent_hole_real(
xfs_btree_cur_t *cur, /* if null, not a btree */ xfs_btree_cur_t *cur, /* if null, not a btree */
xfs_bmbt_irec_t *new, /* new data to add to file extents */ xfs_bmbt_irec_t *new, /* new data to add to file extents */
int *logflagsp, /* inode logging flags */ int *logflagsp, /* inode logging flags */
xfs_extdelta_t *delta, /* Change made to incore extents */
int whichfork) /* data or attr fork */ int whichfork) /* data or attr fork */
{ {
xfs_bmbt_rec_host_t *ep; /* pointer to extent entry ins. point */ xfs_bmbt_rec_host_t *ep; /* pointer to extent entry ins. point */
...@@ -1919,8 +1797,6 @@ xfs_bmap_add_extent_hole_real( ...@@ -1919,8 +1797,6 @@ xfs_bmap_add_extent_hole_real(
xfs_bmbt_irec_t right; /* right neighbor extent entry */ xfs_bmbt_irec_t right; /* right neighbor extent entry */
int rval=0; /* return value (logging flags) */ int rval=0; /* return value (logging flags) */
int state; /* state bits, accessed thru macros */ int state; /* state bits, accessed thru macros */
xfs_filblks_t temp=0;
xfs_filblks_t temp2=0;
ifp = XFS_IFORK_PTR(ip, whichfork); ifp = XFS_IFORK_PTR(ip, whichfork);
ASSERT(idx <= ifp->if_bytes / (uint)sizeof(xfs_bmbt_rec_t)); ASSERT(idx <= ifp->if_bytes / (uint)sizeof(xfs_bmbt_rec_t));
...@@ -2017,11 +1893,6 @@ xfs_bmap_add_extent_hole_real( ...@@ -2017,11 +1893,6 @@ xfs_bmap_add_extent_hole_real(
left.br_state))) left.br_state)))
goto done; goto done;
} }
/* DELTA: Two in-core extents were replaced by one. */
temp = left.br_startoff;
temp2 = left.br_blockcount +
new->br_blockcount +
right.br_blockcount;
break; break;
case BMAP_LEFT_CONTIG: case BMAP_LEFT_CONTIG:
...@@ -2053,10 +1924,6 @@ xfs_bmap_add_extent_hole_real( ...@@ -2053,10 +1924,6 @@ xfs_bmap_add_extent_hole_real(
left.br_state))) left.br_state)))
goto done; goto done;
} }
/* DELTA: One in-core extent grew. */
temp = left.br_startoff;
temp2 = left.br_blockcount +
new->br_blockcount;
break; break;
case BMAP_RIGHT_CONTIG: case BMAP_RIGHT_CONTIG:
...@@ -2089,10 +1956,6 @@ xfs_bmap_add_extent_hole_real( ...@@ -2089,10 +1956,6 @@ xfs_bmap_add_extent_hole_real(
right.br_state))) right.br_state)))
goto done; goto done;
} }
/* DELTA: One in-core extent grew. */
temp = new->br_startoff;
temp2 = new->br_blockcount +
right.br_blockcount;
break; break;
case 0: case 0:
...@@ -2120,18 +1983,8 @@ xfs_bmap_add_extent_hole_real( ...@@ -2120,18 +1983,8 @@ xfs_bmap_add_extent_hole_real(
goto done; goto done;
XFS_WANT_CORRUPTED_GOTO(i == 1, done); XFS_WANT_CORRUPTED_GOTO(i == 1, done);
} }
/* DELTA: A new extent was added in a hole. */
temp = new->br_startoff;
temp2 = new->br_blockcount;
break; break;
} }
if (delta) {
temp2 += temp;
if (delta->xed_startoff > temp)
delta->xed_startoff = temp;
if (delta->xed_blockcount < temp2)
delta->xed_blockcount = temp2;
}
done: done:
*logflagsp = rval; *logflagsp = rval;
return error; return error;
...@@ -2956,7 +2809,6 @@ xfs_bmap_del_extent( ...@@ -2956,7 +2809,6 @@ xfs_bmap_del_extent(
xfs_btree_cur_t *cur, /* if null, not a btree */ xfs_btree_cur_t *cur, /* if null, not a btree */
xfs_bmbt_irec_t *del, /* data to remove from extents */ xfs_bmbt_irec_t *del, /* data to remove from extents */
int *logflagsp, /* inode logging flags */ int *logflagsp, /* inode logging flags */
xfs_extdelta_t *delta, /* Change made to incore extents */
int whichfork, /* data or attr fork */ int whichfork, /* data or attr fork */
int rsvd) /* OK to allocate reserved blocks */ int rsvd) /* OK to allocate reserved blocks */
{ {
...@@ -3262,14 +3114,6 @@ xfs_bmap_del_extent( ...@@ -3262,14 +3114,6 @@ xfs_bmap_del_extent(
if (da_old > da_new) if (da_old > da_new)
xfs_mod_incore_sb(mp, XFS_SBS_FDBLOCKS, (int64_t)(da_old - da_new), xfs_mod_incore_sb(mp, XFS_SBS_FDBLOCKS, (int64_t)(da_old - da_new),
rsvd); rsvd);
if (delta) {
/* DELTA: report the original extent. */
if (delta->xed_startoff > got.br_startoff)
delta->xed_startoff = got.br_startoff;
if (delta->xed_blockcount < got.br_startoff+got.br_blockcount)
delta->xed_blockcount = got.br_startoff +
got.br_blockcount;
}
done: done:
*logflagsp = flags; *logflagsp = flags;
return error; return error;
...@@ -4481,8 +4325,7 @@ xfs_bmapi( ...@@ -4481,8 +4325,7 @@ xfs_bmapi(
xfs_extlen_t total, /* total blocks needed */ xfs_extlen_t total, /* total blocks needed */
xfs_bmbt_irec_t *mval, /* output: map values */ xfs_bmbt_irec_t *mval, /* output: map values */
int *nmap, /* i/o: mval size/count */ int *nmap, /* i/o: mval size/count */
xfs_bmap_free_t *flist, /* i/o: list extents to free */ xfs_bmap_free_t *flist) /* i/o: list extents to free */
xfs_extdelta_t *delta) /* o: change made to incore extents */
{ {
xfs_fsblock_t abno; /* allocated block number */ xfs_fsblock_t abno; /* allocated block number */
xfs_extlen_t alen; /* allocated extent length */ xfs_extlen_t alen; /* allocated extent length */
...@@ -4594,10 +4437,7 @@ xfs_bmapi( ...@@ -4594,10 +4437,7 @@ xfs_bmapi(
end = bno + len; end = bno + len;
obno = bno; obno = bno;
bma.ip = NULL; bma.ip = NULL;
if (delta) {
delta->xed_startoff = NULLFILEOFF;
delta->xed_blockcount = 0;
}
while (bno < end && n < *nmap) { while (bno < end && n < *nmap) {
/* /*
* Reading past eof, act as though there's a hole * Reading past eof, act as though there's a hole
...@@ -4823,7 +4663,7 @@ xfs_bmapi( ...@@ -4823,7 +4663,7 @@ xfs_bmapi(
got.br_state = XFS_EXT_UNWRITTEN; got.br_state = XFS_EXT_UNWRITTEN;
} }
error = xfs_bmap_add_extent(ip, lastx, &cur, &got, error = xfs_bmap_add_extent(ip, lastx, &cur, &got,
firstblock, flist, &tmp_logflags, delta, firstblock, flist, &tmp_logflags,
whichfork, (flags & XFS_BMAPI_RSVBLOCKS)); whichfork, (flags & XFS_BMAPI_RSVBLOCKS));
logflags |= tmp_logflags; logflags |= tmp_logflags;
if (error) if (error)
...@@ -4919,7 +4759,7 @@ xfs_bmapi( ...@@ -4919,7 +4759,7 @@ xfs_bmapi(
} }
mval->br_state = XFS_EXT_NORM; mval->br_state = XFS_EXT_NORM;
error = xfs_bmap_add_extent(ip, lastx, &cur, mval, error = xfs_bmap_add_extent(ip, lastx, &cur, mval,
firstblock, flist, &tmp_logflags, delta, firstblock, flist, &tmp_logflags,
whichfork, (flags & XFS_BMAPI_RSVBLOCKS)); whichfork, (flags & XFS_BMAPI_RSVBLOCKS));
logflags |= tmp_logflags; logflags |= tmp_logflags;
if (error) if (error)
...@@ -5009,14 +4849,6 @@ xfs_bmapi( ...@@ -5009,14 +4849,6 @@ xfs_bmapi(
ASSERT(XFS_IFORK_FORMAT(ip, whichfork) != XFS_DINODE_FMT_BTREE || ASSERT(XFS_IFORK_FORMAT(ip, whichfork) != XFS_DINODE_FMT_BTREE ||
XFS_IFORK_NEXTENTS(ip, whichfork) > ifp->if_ext_max); XFS_IFORK_NEXTENTS(ip, whichfork) > ifp->if_ext_max);
error = 0; error = 0;
if (delta && delta->xed_startoff != NULLFILEOFF) {
/* A change was actually made.
* Note that delta->xed_blockount is an offset at this
* point and needs to be converted to a block count.
*/
ASSERT(delta->xed_blockcount > delta->xed_startoff);
delta->xed_blockcount -= delta->xed_startoff;
}
error0: error0:
/* /*
* Log everything. Do this after conversion, there's no point in * Log everything. Do this after conversion, there's no point in
...@@ -5128,8 +4960,6 @@ xfs_bunmapi( ...@@ -5128,8 +4960,6 @@ xfs_bunmapi(
xfs_fsblock_t *firstblock, /* first allocated block xfs_fsblock_t *firstblock, /* first allocated block
controls a.g. for allocs */ controls a.g. for allocs */
xfs_bmap_free_t *flist, /* i/o: list extents to free */ xfs_bmap_free_t *flist, /* i/o: list extents to free */
xfs_extdelta_t *delta, /* o: change made to incore
extents */
int *done) /* set if not done yet */ int *done) /* set if not done yet */
{ {
xfs_btree_cur_t *cur; /* bmap btree cursor */ xfs_btree_cur_t *cur; /* bmap btree cursor */
...@@ -5188,10 +5018,7 @@ xfs_bunmapi( ...@@ -5188,10 +5018,7 @@ xfs_bunmapi(
bno = start + len - 1; bno = start + len - 1;
ep = xfs_bmap_search_extents(ip, bno, whichfork, &eof, &lastx, &got, ep = xfs_bmap_search_extents(ip, bno, whichfork, &eof, &lastx, &got,
&prev); &prev);
if (delta) {
delta->xed_startoff = NULLFILEOFF;
delta->xed_blockcount = 0;
}
/* /*
* Check to see if the given block number is past the end of the * Check to see if the given block number is past the end of the
* file, back up to the last block if so... * file, back up to the last block if so...
...@@ -5289,7 +5116,7 @@ xfs_bunmapi( ...@@ -5289,7 +5116,7 @@ xfs_bunmapi(
} }
del.br_state = XFS_EXT_UNWRITTEN; del.br_state = XFS_EXT_UNWRITTEN;
error = xfs_bmap_add_extent(ip, lastx, &cur, &del, error = xfs_bmap_add_extent(ip, lastx, &cur, &del,
firstblock, flist, &logflags, delta, firstblock, flist, &logflags,
XFS_DATA_FORK, 0); XFS_DATA_FORK, 0);
if (error) if (error)
goto error0; goto error0;
...@@ -5344,7 +5171,7 @@ xfs_bunmapi( ...@@ -5344,7 +5171,7 @@ xfs_bunmapi(
prev.br_state = XFS_EXT_UNWRITTEN; prev.br_state = XFS_EXT_UNWRITTEN;
error = xfs_bmap_add_extent(ip, lastx - 1, &cur, error = xfs_bmap_add_extent(ip, lastx - 1, &cur,
&prev, firstblock, flist, &logflags, &prev, firstblock, flist, &logflags,
delta, XFS_DATA_FORK, 0); XFS_DATA_FORK, 0);
if (error) if (error)
goto error0; goto error0;
goto nodelete; goto nodelete;
...@@ -5353,7 +5180,7 @@ xfs_bunmapi( ...@@ -5353,7 +5180,7 @@ xfs_bunmapi(
del.br_state = XFS_EXT_UNWRITTEN; del.br_state = XFS_EXT_UNWRITTEN;
error = xfs_bmap_add_extent(ip, lastx, &cur, error = xfs_bmap_add_extent(ip, lastx, &cur,
&del, firstblock, flist, &logflags, &del, firstblock, flist, &logflags,
delta, XFS_DATA_FORK, 0); XFS_DATA_FORK, 0);
if (error) if (error)
goto error0; goto error0;
goto nodelete; goto nodelete;
...@@ -5406,7 +5233,7 @@ xfs_bunmapi( ...@@ -5406,7 +5233,7 @@ xfs_bunmapi(
goto error0; goto error0;
} }
error = xfs_bmap_del_extent(ip, tp, lastx, flist, cur, &del, error = xfs_bmap_del_extent(ip, tp, lastx, flist, cur, &del,
&tmp_logflags, delta, whichfork, rsvd); &tmp_logflags, whichfork, rsvd);
logflags |= tmp_logflags; logflags |= tmp_logflags;
if (error) if (error)
goto error0; goto error0;
...@@ -5463,14 +5290,6 @@ xfs_bunmapi( ...@@ -5463,14 +5290,6 @@ xfs_bunmapi(
ASSERT(ifp->if_ext_max == ASSERT(ifp->if_ext_max ==
XFS_IFORK_SIZE(ip, whichfork) / (uint)sizeof(xfs_bmbt_rec_t)); XFS_IFORK_SIZE(ip, whichfork) / (uint)sizeof(xfs_bmbt_rec_t));
error = 0; error = 0;
if (delta && delta->xed_startoff != NULLFILEOFF) {
/* A change was actually made.
* Note that delta->xed_blockount is an offset at this
* point and needs to be converted to a block count.
*/
ASSERT(delta->xed_blockcount > delta->xed_startoff);
delta->xed_blockcount -= delta->xed_startoff;
}
error0: error0:
/* /*
* Log everything. Do this after conversion, there's no point in * Log everything. Do this after conversion, there's no point in
...@@ -5683,7 +5502,7 @@ xfs_getbmap( ...@@ -5683,7 +5502,7 @@ xfs_getbmap(
error = xfs_bmapi(NULL, ip, XFS_BB_TO_FSBT(mp, bmv->bmv_offset), error = xfs_bmapi(NULL, ip, XFS_BB_TO_FSBT(mp, bmv->bmv_offset),
XFS_BB_TO_FSB(mp, bmv->bmv_length), XFS_BB_TO_FSB(mp, bmv->bmv_length),
bmapi_flags, NULL, 0, map, &nmap, bmapi_flags, NULL, 0, map, &nmap,
NULL, NULL); NULL);
if (error) if (error)
goto out_free_map; goto out_free_map;
ASSERT(nmap <= subnex); ASSERT(nmap <= subnex);
......
...@@ -27,20 +27,6 @@ struct xfs_trans; ...@@ -27,20 +27,6 @@ struct xfs_trans;
extern kmem_zone_t *xfs_bmap_free_item_zone; extern kmem_zone_t *xfs_bmap_free_item_zone;
/*
* DELTA: describe a change to the in-core extent list.
*
* Internally the use of xed_blockount is somewhat funky.
* xed_blockcount contains an offset much of the time because this
* makes merging changes easier. (xfs_fileoff_t and xfs_filblks_t are
* the same underlying type).
*/
typedef struct xfs_extdelta
{
xfs_fileoff_t xed_startoff; /* offset of range */
xfs_filblks_t xed_blockcount; /* blocks in range */
} xfs_extdelta_t;
/* /*
* List of extents to be free "later". * List of extents to be free "later".
* The list is kept sorted on xbf_startblock. * The list is kept sorted on xbf_startblock.
...@@ -305,9 +291,7 @@ xfs_bmapi( ...@@ -305,9 +291,7 @@ xfs_bmapi(
xfs_extlen_t total, /* total blocks needed */ xfs_extlen_t total, /* total blocks needed */
struct xfs_bmbt_irec *mval, /* output: map values */ struct xfs_bmbt_irec *mval, /* output: map values */
int *nmap, /* i/o: mval size/count */ int *nmap, /* i/o: mval size/count */
xfs_bmap_free_t *flist, /* i/o: list extents to free */ xfs_bmap_free_t *flist); /* i/o: list extents to free */
xfs_extdelta_t *delta); /* o: change made to incore
extents */
/* /*
* Map file blocks to filesystem blocks, simple version. * Map file blocks to filesystem blocks, simple version.
...@@ -341,8 +325,6 @@ xfs_bunmapi( ...@@ -341,8 +325,6 @@ xfs_bunmapi(
xfs_fsblock_t *firstblock, /* first allocated block xfs_fsblock_t *firstblock, /* first allocated block
controls a.g. for allocs */ controls a.g. for allocs */
xfs_bmap_free_t *flist, /* i/o: list extents to free */ xfs_bmap_free_t *flist, /* i/o: list extents to free */
xfs_extdelta_t *delta, /* o: change made to incore
extents */
int *done); /* set if not done yet */ int *done); /* set if not done yet */
/* /*
......
...@@ -1596,7 +1596,7 @@ xfs_da_grow_inode(xfs_da_args_t *args, xfs_dablk_t *new_blkno) ...@@ -1596,7 +1596,7 @@ xfs_da_grow_inode(xfs_da_args_t *args, xfs_dablk_t *new_blkno)
xfs_bmapi_aflag(w)|XFS_BMAPI_WRITE|XFS_BMAPI_METADATA| xfs_bmapi_aflag(w)|XFS_BMAPI_WRITE|XFS_BMAPI_METADATA|
XFS_BMAPI_CONTIG, XFS_BMAPI_CONTIG,
args->firstblock, args->total, &map, &nmap, args->firstblock, args->total, &map, &nmap,
args->flist, NULL))) { args->flist))) {
return error; return error;
} }
ASSERT(nmap <= 1); ASSERT(nmap <= 1);
...@@ -1617,8 +1617,7 @@ xfs_da_grow_inode(xfs_da_args_t *args, xfs_dablk_t *new_blkno) ...@@ -1617,8 +1617,7 @@ xfs_da_grow_inode(xfs_da_args_t *args, xfs_dablk_t *new_blkno)
xfs_bmapi_aflag(w)|XFS_BMAPI_WRITE| xfs_bmapi_aflag(w)|XFS_BMAPI_WRITE|
XFS_BMAPI_METADATA, XFS_BMAPI_METADATA,
args->firstblock, args->total, args->firstblock, args->total,
&mapp[mapi], &nmap, args->flist, &mapp[mapi], &nmap, args->flist))) {
NULL))) {
kmem_free(mapp); kmem_free(mapp);
return error; return error;
} }
...@@ -1879,7 +1878,7 @@ xfs_da_shrink_inode(xfs_da_args_t *args, xfs_dablk_t dead_blkno, ...@@ -1879,7 +1878,7 @@ xfs_da_shrink_inode(xfs_da_args_t *args, xfs_dablk_t dead_blkno,
*/ */
if ((error = xfs_bunmapi(tp, dp, dead_blkno, count, if ((error = xfs_bunmapi(tp, dp, dead_blkno, count,
xfs_bmapi_aflag(w)|XFS_BMAPI_METADATA, xfs_bmapi_aflag(w)|XFS_BMAPI_METADATA,
0, args->firstblock, args->flist, NULL, 0, args->firstblock, args->flist,
&done)) == ENOSPC) { &done)) == ENOSPC) {
if (w != XFS_DATA_FORK) if (w != XFS_DATA_FORK)
break; break;
...@@ -1984,7 +1983,7 @@ xfs_da_do_buf( ...@@ -1984,7 +1983,7 @@ xfs_da_do_buf(
nfsb, nfsb,
XFS_BMAPI_METADATA | XFS_BMAPI_METADATA |
xfs_bmapi_aflag(whichfork), xfs_bmapi_aflag(whichfork),
NULL, 0, mapp, &nmap, NULL, NULL))) NULL, 0, mapp, &nmap, NULL)))
goto exit0; goto exit0;
} }
} else { } else {
......
...@@ -547,7 +547,7 @@ xfs_dir2_grow_inode( ...@@ -547,7 +547,7 @@ xfs_dir2_grow_inode(
if ((error = xfs_bmapi(tp, dp, bno, count, if ((error = xfs_bmapi(tp, dp, bno, count,
XFS_BMAPI_WRITE|XFS_BMAPI_METADATA|XFS_BMAPI_CONTIG, XFS_BMAPI_WRITE|XFS_BMAPI_METADATA|XFS_BMAPI_CONTIG,
args->firstblock, args->total, &map, &nmap, args->firstblock, args->total, &map, &nmap,
args->flist, NULL))) args->flist)))
return error; return error;
ASSERT(nmap <= 1); ASSERT(nmap <= 1);
if (nmap == 1) { if (nmap == 1) {
...@@ -579,8 +579,7 @@ xfs_dir2_grow_inode( ...@@ -579,8 +579,7 @@ xfs_dir2_grow_inode(
if ((error = xfs_bmapi(tp, dp, b, c, if ((error = xfs_bmapi(tp, dp, b, c,
XFS_BMAPI_WRITE|XFS_BMAPI_METADATA, XFS_BMAPI_WRITE|XFS_BMAPI_METADATA,
args->firstblock, args->total, args->firstblock, args->total,
&mapp[mapi], &nmap, args->flist, &mapp[mapi], &nmap, args->flist))) {
NULL))) {
kmem_free(mapp); kmem_free(mapp);
return error; return error;
} }
...@@ -713,7 +712,7 @@ xfs_dir2_shrink_inode( ...@@ -713,7 +712,7 @@ xfs_dir2_shrink_inode(
*/ */
if ((error = xfs_bunmapi(tp, dp, da, mp->m_dirblkfsbs, if ((error = xfs_bunmapi(tp, dp, da, mp->m_dirblkfsbs,
XFS_BMAPI_METADATA, 0, args->firstblock, args->flist, XFS_BMAPI_METADATA, 0, args->firstblock, args->flist,
NULL, &done))) { &done))) {
/* /*
* ENOSPC actually can happen if we're in a removename with * ENOSPC actually can happen if we're in a removename with
* no space reservation, and the resulting block removal * no space reservation, and the resulting block removal
......
...@@ -873,7 +873,7 @@ xfs_dir2_leaf_getdents( ...@@ -873,7 +873,7 @@ xfs_dir2_leaf_getdents(
xfs_dir2_byte_to_da(mp, xfs_dir2_byte_to_da(mp,
XFS_DIR2_LEAF_OFFSET) - map_off, XFS_DIR2_LEAF_OFFSET) - map_off,
XFS_BMAPI_METADATA, NULL, 0, XFS_BMAPI_METADATA, NULL, 0,
&map[map_valid], &nmap, NULL, NULL); &map[map_valid], &nmap, NULL);
/* /*
* Don't know if we should ignore this or * Don't know if we should ignore this or
* try to return an error. * try to return an error.
......
...@@ -1222,7 +1222,7 @@ xfs_isize_check( ...@@ -1222,7 +1222,7 @@ xfs_isize_check(
(xfs_ufsize_t)XFS_MAXIOFFSET(mp)) - (xfs_ufsize_t)XFS_MAXIOFFSET(mp)) -
map_first), map_first),
XFS_BMAPI_ENTIRE, NULL, 0, imaps, &nimaps, XFS_BMAPI_ENTIRE, NULL, 0, imaps, &nimaps,
NULL, NULL)) NULL))
return; return;
ASSERT(nimaps == 1); ASSERT(nimaps == 1);
ASSERT(imaps[0].br_startblock == HOLESTARTBLOCK); ASSERT(imaps[0].br_startblock == HOLESTARTBLOCK);
...@@ -1588,7 +1588,7 @@ xfs_itruncate_finish( ...@@ -1588,7 +1588,7 @@ xfs_itruncate_finish(
xfs_bmapi_aflag(fork), xfs_bmapi_aflag(fork),
XFS_ITRUNC_MAX_EXTENTS, XFS_ITRUNC_MAX_EXTENTS,
&first_block, &free_list, &first_block, &free_list,
NULL, &done); &done);
if (error) { if (error) {
/* /*
* If the bunmapi call encounters an error, * If the bunmapi call encounters an error,
......
...@@ -118,7 +118,7 @@ xfs_iomap( ...@@ -118,7 +118,7 @@ xfs_iomap(
error = xfs_bmapi(NULL, ip, offset_fsb, error = xfs_bmapi(NULL, ip, offset_fsb,
(xfs_filblks_t)(end_fsb - offset_fsb), (xfs_filblks_t)(end_fsb - offset_fsb),
bmapi_flags, NULL, 0, imap, bmapi_flags, NULL, 0, imap,
nimaps, NULL, NULL); nimaps, NULL);
if (error) if (error)
goto out; goto out;
...@@ -341,7 +341,7 @@ xfs_iomap_write_direct( ...@@ -341,7 +341,7 @@ xfs_iomap_write_direct(
xfs_bmap_init(&free_list, &firstfsb); xfs_bmap_init(&free_list, &firstfsb);
nimaps = 1; nimaps = 1;
error = xfs_bmapi(tp, ip, offset_fsb, count_fsb, bmapi_flag, error = xfs_bmapi(tp, ip, offset_fsb, count_fsb, bmapi_flag,
&firstfsb, 0, &imap, &nimaps, &free_list, NULL); &firstfsb, 0, &imap, &nimaps, &free_list);
if (error) if (error)
goto error0; goto error0;
...@@ -419,7 +419,7 @@ xfs_iomap_eof_want_preallocate( ...@@ -419,7 +419,7 @@ xfs_iomap_eof_want_preallocate(
imaps = nimaps; imaps = nimaps;
firstblock = NULLFSBLOCK; firstblock = NULLFSBLOCK;
error = xfs_bmapi(NULL, ip, start_fsb, count_fsb, 0, error = xfs_bmapi(NULL, ip, start_fsb, count_fsb, 0,
&firstblock, 0, imap, &imaps, NULL, NULL); &firstblock, 0, imap, &imaps, NULL);
if (error) if (error)
return error; return error;
for (n = 0; n < imaps; n++) { for (n = 0; n < imaps; n++) {
...@@ -494,7 +494,7 @@ xfs_iomap_write_delay( ...@@ -494,7 +494,7 @@ xfs_iomap_write_delay(
(xfs_filblks_t)(last_fsb - offset_fsb), (xfs_filblks_t)(last_fsb - offset_fsb),
XFS_BMAPI_DELAY | XFS_BMAPI_WRITE | XFS_BMAPI_DELAY | XFS_BMAPI_WRITE |
XFS_BMAPI_ENTIRE, &firstblock, 1, imap, XFS_BMAPI_ENTIRE, &firstblock, 1, imap,
&nimaps, NULL, NULL); &nimaps, NULL);
if (error && (error != ENOSPC)) if (error && (error != ENOSPC))
return XFS_ERROR(error); return XFS_ERROR(error);
...@@ -650,7 +650,7 @@ xfs_iomap_write_allocate( ...@@ -650,7 +650,7 @@ xfs_iomap_write_allocate(
/* Go get the actual blocks */ /* Go get the actual blocks */
error = xfs_bmapi(tp, ip, map_start_fsb, count_fsb, error = xfs_bmapi(tp, ip, map_start_fsb, count_fsb,
XFS_BMAPI_WRITE, &first_block, 1, XFS_BMAPI_WRITE, &first_block, 1,
&imap, &nimaps, &free_list, NULL); &imap, &nimaps, &free_list);
if (error) if (error)
goto trans_cancel; goto trans_cancel;
...@@ -768,7 +768,7 @@ xfs_iomap_write_unwritten( ...@@ -768,7 +768,7 @@ xfs_iomap_write_unwritten(
nimaps = 1; nimaps = 1;
error = xfs_bmapi(tp, ip, offset_fsb, count_fsb, error = xfs_bmapi(tp, ip, offset_fsb, count_fsb,
XFS_BMAPI_WRITE|XFS_BMAPI_CONVERT, &firstfsb, XFS_BMAPI_WRITE|XFS_BMAPI_CONVERT, &firstfsb,
1, &imap, &nimaps, &free_list, NULL); 1, &imap, &nimaps, &free_list);
if (error) if (error)
goto error_on_bmapi_transaction; goto error_on_bmapi_transaction;
......
...@@ -122,7 +122,7 @@ xfs_growfs_rt_alloc( ...@@ -122,7 +122,7 @@ xfs_growfs_rt_alloc(
cancelflags |= XFS_TRANS_ABORT; cancelflags |= XFS_TRANS_ABORT;
error = xfs_bmapi(tp, ip, oblocks, nblocks - oblocks, error = xfs_bmapi(tp, ip, oblocks, nblocks - oblocks,
XFS_BMAPI_WRITE | XFS_BMAPI_METADATA, &firstblock, XFS_BMAPI_WRITE | XFS_BMAPI_METADATA, &firstblock,
resblks, &map, &nmap, &flist, NULL); resblks, &map, &nmap, &flist);
if (!error && nmap < 1) if (!error && nmap < 1)
error = XFS_ERROR(ENOSPC); error = XFS_ERROR(ENOSPC);
if (error) if (error)
......
...@@ -492,7 +492,7 @@ xfs_readlink_bmap( ...@@ -492,7 +492,7 @@ xfs_readlink_bmap(
int error = 0; int error = 0;
error = xfs_bmapi(NULL, ip, 0, XFS_B_TO_FSB(mp, pathlen), 0, NULL, 0, error = xfs_bmapi(NULL, ip, 0, XFS_B_TO_FSB(mp, pathlen), 0, NULL, 0,
mval, &nmaps, NULL, NULL); mval, &nmaps, NULL);
if (error) if (error)
goto out; goto out;
...@@ -596,7 +596,7 @@ xfs_free_eofblocks( ...@@ -596,7 +596,7 @@ xfs_free_eofblocks(
nimaps = 1; nimaps = 1;
xfs_ilock(ip, XFS_ILOCK_SHARED); xfs_ilock(ip, XFS_ILOCK_SHARED);
error = xfs_bmapi(NULL, ip, end_fsb, map_len, 0, error = xfs_bmapi(NULL, ip, end_fsb, map_len, 0,
NULL, 0, &imap, &nimaps, NULL, NULL); NULL, 0, &imap, &nimaps, NULL);
xfs_iunlock(ip, XFS_ILOCK_SHARED); xfs_iunlock(ip, XFS_ILOCK_SHARED);
if (!error && (nimaps != 0) && if (!error && (nimaps != 0) &&
...@@ -733,7 +733,7 @@ xfs_inactive_symlink_rmt( ...@@ -733,7 +733,7 @@ xfs_inactive_symlink_rmt(
nmaps = ARRAY_SIZE(mval); nmaps = ARRAY_SIZE(mval);
if ((error = xfs_bmapi(tp, ip, 0, XFS_B_TO_FSB(mp, size), if ((error = xfs_bmapi(tp, ip, 0, XFS_B_TO_FSB(mp, size),
XFS_BMAPI_METADATA, &first_block, 0, mval, &nmaps, XFS_BMAPI_METADATA, &first_block, 0, mval, &nmaps,
&free_list, NULL))) &free_list)))
goto error0; goto error0;
/* /*
* Invalidate the block(s). * Invalidate the block(s).
...@@ -748,7 +748,7 @@ xfs_inactive_symlink_rmt( ...@@ -748,7 +748,7 @@ xfs_inactive_symlink_rmt(
* Unmap the dead block(s) to the free_list. * Unmap the dead block(s) to the free_list.
*/ */
if ((error = xfs_bunmapi(tp, ip, 0, size, XFS_BMAPI_METADATA, nmaps, if ((error = xfs_bunmapi(tp, ip, 0, size, XFS_BMAPI_METADATA, nmaps,
&first_block, &free_list, NULL, &done))) &first_block, &free_list, &done)))
goto error1; goto error1;
ASSERT(done); ASSERT(done);
/* /*
...@@ -2095,7 +2095,7 @@ xfs_symlink( ...@@ -2095,7 +2095,7 @@ xfs_symlink(
error = xfs_bmapi(tp, ip, first_fsb, fs_blocks, error = xfs_bmapi(tp, ip, first_fsb, fs_blocks,
XFS_BMAPI_WRITE | XFS_BMAPI_METADATA, XFS_BMAPI_WRITE | XFS_BMAPI_METADATA,
&first_block, resblks, mval, &nmaps, &first_block, resblks, mval, &nmaps,
&free_list, NULL); &free_list);
if (error) { if (error) {
goto error1; goto error1;
} }
...@@ -2347,7 +2347,7 @@ xfs_alloc_file_space( ...@@ -2347,7 +2347,7 @@ xfs_alloc_file_space(
error = xfs_bmapi(tp, ip, startoffset_fsb, error = xfs_bmapi(tp, ip, startoffset_fsb,
allocatesize_fsb, bmapi_flag, allocatesize_fsb, bmapi_flag,
&firstfsb, 0, imapp, &nimaps, &firstfsb, 0, imapp, &nimaps,
&free_list, NULL); &free_list);
if (error) { if (error) {
goto error0; goto error0;
} }
...@@ -2436,7 +2436,7 @@ xfs_zero_remaining_bytes( ...@@ -2436,7 +2436,7 @@ xfs_zero_remaining_bytes(
offset_fsb = XFS_B_TO_FSBT(mp, offset); offset_fsb = XFS_B_TO_FSBT(mp, offset);
nimap = 1; nimap = 1;
error = xfs_bmapi(NULL, ip, offset_fsb, 1, 0, error = xfs_bmapi(NULL, ip, offset_fsb, 1, 0,
NULL, 0, &imap, &nimap, NULL, NULL); NULL, 0, &imap, &nimap, NULL);
if (error || nimap < 1) if (error || nimap < 1)
break; break;
ASSERT(imap.br_blockcount >= 1); ASSERT(imap.br_blockcount >= 1);
...@@ -2556,7 +2556,7 @@ xfs_free_file_space( ...@@ -2556,7 +2556,7 @@ xfs_free_file_space(
if (rt && !xfs_sb_version_hasextflgbit(&mp->m_sb)) { if (rt && !xfs_sb_version_hasextflgbit(&mp->m_sb)) {
nimap = 1; nimap = 1;
error = xfs_bmapi(NULL, ip, startoffset_fsb, error = xfs_bmapi(NULL, ip, startoffset_fsb,
1, 0, NULL, 0, &imap, &nimap, NULL, NULL); 1, 0, NULL, 0, &imap, &nimap, NULL);
if (error) if (error)
goto out_unlock_iolock; goto out_unlock_iolock;
ASSERT(nimap == 0 || nimap == 1); ASSERT(nimap == 0 || nimap == 1);
...@@ -2571,7 +2571,7 @@ xfs_free_file_space( ...@@ -2571,7 +2571,7 @@ xfs_free_file_space(
} }
nimap = 1; nimap = 1;
error = xfs_bmapi(NULL, ip, endoffset_fsb - 1, error = xfs_bmapi(NULL, ip, endoffset_fsb - 1,
1, 0, NULL, 0, &imap, &nimap, NULL, NULL); 1, 0, NULL, 0, &imap, &nimap, NULL);
if (error) if (error)
goto out_unlock_iolock; goto out_unlock_iolock;
ASSERT(nimap == 0 || nimap == 1); ASSERT(nimap == 0 || nimap == 1);
...@@ -2647,7 +2647,7 @@ xfs_free_file_space( ...@@ -2647,7 +2647,7 @@ xfs_free_file_space(
xfs_bmap_init(&free_list, &firstfsb); xfs_bmap_init(&free_list, &firstfsb);
error = xfs_bunmapi(tp, ip, startoffset_fsb, error = xfs_bunmapi(tp, ip, startoffset_fsb,
endoffset_fsb - startoffset_fsb, endoffset_fsb - startoffset_fsb,
0, 2, &firstfsb, &free_list, NULL, &done); 0, 2, &firstfsb, &free_list, &done);
if (error) { if (error) {
goto error0; goto error0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment