aboutsummaryrefslogtreecommitdiffstats
path: root/fs/xfs/xfs_dir2.c
diff options
context:
space:
mode:
authorOlaf Weber <olaf@sgi.com>2006-06-09 00:48:12 -0400
committerNathan Scott <nathans@sgi.com>2006-06-09 00:48:12 -0400
commit3e57ecf640428c01ba1ed8c8fc538447ada1715b (patch)
treebcc92b0017b5ec8e106649cd53beffdd6addde07 /fs/xfs/xfs_dir2.c
parent128e6ced247cda88f96fa9f2e4ba8b2c4a681560 (diff)
[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>
Diffstat (limited to 'fs/xfs/xfs_dir2.c')
-rw-r--r--fs/xfs/xfs_dir2.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/fs/xfs/xfs_dir2.c b/fs/xfs/xfs_dir2.c
index 022c8398ab62..80238a2263fa 100644
--- a/fs/xfs/xfs_dir2.c
+++ b/fs/xfs/xfs_dir2.c
@@ -549,7 +549,7 @@ xfs_dir2_grow_inode(
549 if ((error = xfs_bmapi(tp, dp, bno, count, 549 if ((error = xfs_bmapi(tp, dp, bno, count,
550 XFS_BMAPI_WRITE|XFS_BMAPI_METADATA|XFS_BMAPI_CONTIG, 550 XFS_BMAPI_WRITE|XFS_BMAPI_METADATA|XFS_BMAPI_CONTIG,
551 args->firstblock, args->total, &map, &nmap, 551 args->firstblock, args->total, &map, &nmap,
552 args->flist))) { 552 args->flist, NULL))) {
553 return error; 553 return error;
554 } 554 }
555 ASSERT(nmap <= 1); 555 ASSERT(nmap <= 1);
@@ -585,7 +585,8 @@ xfs_dir2_grow_inode(
585 if ((error = xfs_bmapi(tp, dp, b, c, 585 if ((error = xfs_bmapi(tp, dp, b, c,
586 XFS_BMAPI_WRITE|XFS_BMAPI_METADATA, 586 XFS_BMAPI_WRITE|XFS_BMAPI_METADATA,
587 args->firstblock, args->total, 587 args->firstblock, args->total,
588 &mapp[mapi], &nmap, args->flist))) { 588 &mapp[mapi], &nmap, args->flist,
589 NULL))) {
589 kmem_free(mapp, sizeof(*mapp) * count); 590 kmem_free(mapp, sizeof(*mapp) * count);
590 return error; 591 return error;
591 } 592 }
@@ -786,7 +787,7 @@ xfs_dir2_shrink_inode(
786 */ 787 */
787 if ((error = xfs_bunmapi(tp, dp, da, mp->m_dirblkfsbs, 788 if ((error = xfs_bunmapi(tp, dp, da, mp->m_dirblkfsbs,
788 XFS_BMAPI_METADATA, 0, args->firstblock, args->flist, 789 XFS_BMAPI_METADATA, 0, args->firstblock, args->flist,
789 &done))) { 790 NULL, &done))) {
790 /* 791 /*
791 * ENOSPC actually can happen if we're in a removename with 792 * ENOSPC actually can happen if we're in a removename with
792 * no space reservation, and the resulting block removal 793 * no space reservation, and the resulting block removal