[XFS] Add parameters to xfs_bmapi() and xfs_bunmapi() to have them report
the range spanned by modifications to the in-core extent map. Add XFS_BUNMAPI() and XFS_SWAP_EXTENTS() macros that call xfs_bunmapi() and xfs_swap_extents() via the ioops vector. Change all calls that may modify the in-core extent map for the data fork to go through the ioops vector. This allows a cache of extent map data to be kept in sync. SGI-PV: 947615 SGI-Modid: xfs-linux-melb:xfs-kern:209226a Signed-off-by: Olaf Weber <olaf@sgi.com> Signed-off-by: Nathan Scott <nathans@sgi.com>
This commit is contained in:
@@ -549,7 +549,7 @@ xfs_dir2_grow_inode(
|
||||
if ((error = xfs_bmapi(tp, dp, bno, count,
|
||||
XFS_BMAPI_WRITE|XFS_BMAPI_METADATA|XFS_BMAPI_CONTIG,
|
||||
args->firstblock, args->total, &map, &nmap,
|
||||
args->flist))) {
|
||||
args->flist, NULL))) {
|
||||
return error;
|
||||
}
|
||||
ASSERT(nmap <= 1);
|
||||
@@ -585,7 +585,8 @@ xfs_dir2_grow_inode(
|
||||
if ((error = xfs_bmapi(tp, dp, b, c,
|
||||
XFS_BMAPI_WRITE|XFS_BMAPI_METADATA,
|
||||
args->firstblock, args->total,
|
||||
&mapp[mapi], &nmap, args->flist))) {
|
||||
&mapp[mapi], &nmap, args->flist,
|
||||
NULL))) {
|
||||
kmem_free(mapp, sizeof(*mapp) * count);
|
||||
return error;
|
||||
}
|
||||
@@ -786,7 +787,7 @@ xfs_dir2_shrink_inode(
|
||||
*/
|
||||
if ((error = xfs_bunmapi(tp, dp, da, mp->m_dirblkfsbs,
|
||||
XFS_BMAPI_METADATA, 0, args->firstblock, args->flist,
|
||||
&done))) {
|
||||
NULL, &done))) {
|
||||
/*
|
||||
* ENOSPC actually can happen if we're in a removename with
|
||||
* no space reservation, and the resulting block removal
|
||||
|
Reference in New Issue
Block a user