On Thu, Jun 16, 2016 at 06:20:00PM -0700, Darrick J. Wong wrote: > Drop the compatibility shims that we were using to integrate the new > deferred operation mechanism into the existing code. No new code. I've since renamed xfs_bmap_free_item to xfs_extent_free_item to better reflect the increased separation between bmap and extent free. --D > > Signed-off-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx> > --- > fs/xfs/libxfs/xfs_attr.c | 58 ++++++++++++++++++------------------ > fs/xfs/libxfs/xfs_attr_remote.c | 14 ++++----- > fs/xfs/libxfs/xfs_bmap.c | 38 ++++++++++++------------ > fs/xfs/libxfs/xfs_bmap.h | 10 +++--- > fs/xfs/libxfs/xfs_btree.h | 5 ++- > fs/xfs/libxfs/xfs_da_btree.h | 4 +-- > fs/xfs/libxfs/xfs_defer.h | 7 ---- > fs/xfs/libxfs/xfs_dir2.c | 6 ++-- > fs/xfs/libxfs/xfs_dir2.h | 8 +++-- > fs/xfs/libxfs/xfs_ialloc.c | 6 ++-- > fs/xfs/libxfs/xfs_ialloc.h | 2 + > fs/xfs/libxfs/xfs_trans_resv.c | 4 +-- > fs/xfs/xfs_bmap_util.c | 28 +++++++++--------- > fs/xfs/xfs_dquot.c | 10 +++--- > fs/xfs/xfs_inode.c | 62 ++++++++++++++++++++------------------- > fs/xfs/xfs_inode.h | 4 +-- > fs/xfs/xfs_iomap.c | 24 ++++++++------- > fs/xfs/xfs_rtalloc.c | 8 +++-- > fs/xfs/xfs_symlink.c | 16 +++++----- > 19 files changed, 154 insertions(+), 160 deletions(-) > > > diff --git a/fs/xfs/libxfs/xfs_attr.c b/fs/xfs/libxfs/xfs_attr.c > index 79d3a30..66baf97 100644 > --- a/fs/xfs/libxfs/xfs_attr.c > +++ b/fs/xfs/libxfs/xfs_attr.c > @@ -204,7 +204,7 @@ xfs_attr_set( > { > struct xfs_mount *mp = dp->i_mount; > struct xfs_da_args args; > - struct xfs_bmap_free flist; > + struct xfs_defer_ops flist; > struct xfs_trans_res tres; > xfs_fsblock_t firstblock; > int rsvd = (flags & ATTR_ROOT) != 0; > @@ -317,13 +317,13 @@ xfs_attr_set( > * It won't fit in the shortform, transform to a leaf block. > * GROT: another possible req'mt for a double-split btree op. > */ > - xfs_bmap_init(args.flist, args.firstblock); > + xfs_defer_init(args.flist, args.firstblock); > error = xfs_attr_shortform_to_leaf(&args); > if (!error) > - error = xfs_bmap_finish(&args.trans, args.flist, dp); > + error = xfs_defer_finish(&args.trans, args.flist, dp); > if (error) { > args.trans = NULL; > - xfs_bmap_cancel(&flist); > + xfs_defer_cancel(&flist); > goto out; > } > > @@ -383,7 +383,7 @@ xfs_attr_remove( > { > struct xfs_mount *mp = dp->i_mount; > struct xfs_da_args args; > - struct xfs_bmap_free flist; > + struct xfs_defer_ops flist; > xfs_fsblock_t firstblock; > int error; > > @@ -585,13 +585,13 @@ xfs_attr_leaf_addname(xfs_da_args_t *args) > * Commit that transaction so that the node_addname() call > * can manage its own transactions. > */ > - xfs_bmap_init(args->flist, args->firstblock); > + xfs_defer_init(args->flist, args->firstblock); > error = xfs_attr3_leaf_to_node(args); > if (!error) > - error = xfs_bmap_finish(&args->trans, args->flist, dp); > + error = xfs_defer_finish(&args->trans, args->flist, dp); > if (error) { > args->trans = NULL; > - xfs_bmap_cancel(args->flist); > + xfs_defer_cancel(args->flist); > return error; > } > > @@ -675,15 +675,15 @@ xfs_attr_leaf_addname(xfs_da_args_t *args) > * If the result is small enough, shrink it all into the inode. > */ > if ((forkoff = xfs_attr_shortform_allfit(bp, dp))) { > - xfs_bmap_init(args->flist, args->firstblock); > + xfs_defer_init(args->flist, args->firstblock); > error = xfs_attr3_leaf_to_shortform(bp, args, forkoff); > /* bp is gone due to xfs_da_shrink_inode */ > if (!error) > - error = xfs_bmap_finish(&args->trans, > + error = xfs_defer_finish(&args->trans, > args->flist, dp); > if (error) { > args->trans = NULL; > - xfs_bmap_cancel(args->flist); > + xfs_defer_cancel(args->flist); > return error; > } > } > @@ -738,14 +738,14 @@ xfs_attr_leaf_removename(xfs_da_args_t *args) > * If the result is small enough, shrink it all into the inode. > */ > if ((forkoff = xfs_attr_shortform_allfit(bp, dp))) { > - xfs_bmap_init(args->flist, args->firstblock); > + xfs_defer_init(args->flist, args->firstblock); > error = xfs_attr3_leaf_to_shortform(bp, args, forkoff); > /* bp is gone due to xfs_da_shrink_inode */ > if (!error) > - error = xfs_bmap_finish(&args->trans, args->flist, dp); > + error = xfs_defer_finish(&args->trans, args->flist, dp); > if (error) { > args->trans = NULL; > - xfs_bmap_cancel(args->flist); > + xfs_defer_cancel(args->flist); > return error; > } > } > @@ -864,14 +864,14 @@ restart: > */ > xfs_da_state_free(state); > state = NULL; > - xfs_bmap_init(args->flist, args->firstblock); > + xfs_defer_init(args->flist, args->firstblock); > error = xfs_attr3_leaf_to_node(args); > if (!error) > - error = xfs_bmap_finish(&args->trans, > + error = xfs_defer_finish(&args->trans, > args->flist, dp); > if (error) { > args->trans = NULL; > - xfs_bmap_cancel(args->flist); > + xfs_defer_cancel(args->flist); > goto out; > } > > @@ -892,13 +892,13 @@ restart: > * in the index/blkno/rmtblkno/rmtblkcnt fields and > * in the index2/blkno2/rmtblkno2/rmtblkcnt2 fields. > */ > - xfs_bmap_init(args->flist, args->firstblock); > + xfs_defer_init(args->flist, args->firstblock); > error = xfs_da3_split(state); > if (!error) > - error = xfs_bmap_finish(&args->trans, args->flist, dp); > + error = xfs_defer_finish(&args->trans, args->flist, dp); > if (error) { > args->trans = NULL; > - xfs_bmap_cancel(args->flist); > + xfs_defer_cancel(args->flist); > goto out; > } > } else { > @@ -991,14 +991,14 @@ restart: > * Check to see if the tree needs to be collapsed. > */ > if (retval && (state->path.active > 1)) { > - xfs_bmap_init(args->flist, args->firstblock); > + xfs_defer_init(args->flist, args->firstblock); > error = xfs_da3_join(state); > if (!error) > - error = xfs_bmap_finish(&args->trans, > + error = xfs_defer_finish(&args->trans, > args->flist, dp); > if (error) { > args->trans = NULL; > - xfs_bmap_cancel(args->flist); > + xfs_defer_cancel(args->flist); > goto out; > } > } > @@ -1114,13 +1114,13 @@ xfs_attr_node_removename(xfs_da_args_t *args) > * Check to see if the tree needs to be collapsed. > */ > if (retval && (state->path.active > 1)) { > - xfs_bmap_init(args->flist, args->firstblock); > + xfs_defer_init(args->flist, args->firstblock); > error = xfs_da3_join(state); > if (!error) > - error = xfs_bmap_finish(&args->trans, args->flist, dp); > + error = xfs_defer_finish(&args->trans, args->flist, dp); > if (error) { > args->trans = NULL; > - xfs_bmap_cancel(args->flist); > + xfs_defer_cancel(args->flist); > goto out; > } > /* > @@ -1147,15 +1147,15 @@ xfs_attr_node_removename(xfs_da_args_t *args) > goto out; > > if ((forkoff = xfs_attr_shortform_allfit(bp, dp))) { > - xfs_bmap_init(args->flist, args->firstblock); > + xfs_defer_init(args->flist, args->firstblock); > error = xfs_attr3_leaf_to_shortform(bp, args, forkoff); > /* bp is gone due to xfs_da_shrink_inode */ > if (!error) > - error = xfs_bmap_finish(&args->trans, > + error = xfs_defer_finish(&args->trans, > args->flist, dp); > if (error) { > args->trans = NULL; > - xfs_bmap_cancel(args->flist); > + xfs_defer_cancel(args->flist); > goto out; > } > } else > diff --git a/fs/xfs/libxfs/xfs_attr_remote.c b/fs/xfs/libxfs/xfs_attr_remote.c > index 93a9ce1..aabb516 100644 > --- a/fs/xfs/libxfs/xfs_attr_remote.c > +++ b/fs/xfs/libxfs/xfs_attr_remote.c > @@ -461,16 +461,16 @@ xfs_attr_rmtval_set( > * extent and then crash then the block may not contain the > * correct metadata after log recovery occurs. > */ > - xfs_bmap_init(args->flist, args->firstblock); > + xfs_defer_init(args->flist, args->firstblock); > nmap = 1; > error = xfs_bmapi_write(args->trans, dp, (xfs_fileoff_t)lblkno, > blkcnt, XFS_BMAPI_ATTRFORK, args->firstblock, > args->total, &map, &nmap, args->flist); > if (!error) > - error = xfs_bmap_finish(&args->trans, args->flist, dp); > + error = xfs_defer_finish(&args->trans, args->flist, dp); > if (error) { > args->trans = NULL; > - xfs_bmap_cancel(args->flist); > + xfs_defer_cancel(args->flist); > return error; > } > > @@ -504,7 +504,7 @@ xfs_attr_rmtval_set( > > ASSERT(blkcnt > 0); > > - xfs_bmap_init(args->flist, args->firstblock); > + xfs_defer_init(args->flist, args->firstblock); > nmap = 1; > error = xfs_bmapi_read(dp, (xfs_fileoff_t)lblkno, > blkcnt, &map, &nmap, > @@ -604,16 +604,16 @@ xfs_attr_rmtval_remove( > blkcnt = args->rmtblkcnt; > done = 0; > while (!done) { > - xfs_bmap_init(args->flist, args->firstblock); > + xfs_defer_init(args->flist, args->firstblock); > error = xfs_bunmapi(args->trans, args->dp, lblkno, blkcnt, > XFS_BMAPI_ATTRFORK, 1, args->firstblock, > args->flist, &done); > if (!error) > - error = xfs_bmap_finish(&args->trans, args->flist, > + error = xfs_defer_finish(&args->trans, args->flist, > args->dp); > if (error) { > args->trans = NULL; > - xfs_bmap_cancel(args->flist); > + xfs_defer_cancel(args->flist); > return error; > } > > diff --git a/fs/xfs/libxfs/xfs_bmap.c b/fs/xfs/libxfs/xfs_bmap.c > index 64ca97f..45ce7bd 100644 > --- a/fs/xfs/libxfs/xfs_bmap.c > +++ b/fs/xfs/libxfs/xfs_bmap.c > @@ -572,7 +572,7 @@ xfs_bmap_validate_ret( > void > xfs_bmap_add_free( > struct xfs_mount *mp, /* mount point structure */ > - struct xfs_bmap_free *flist, /* list of extents */ > + struct xfs_defer_ops *flist, /* list of extents */ > xfs_fsblock_t bno, /* fs block number of extent */ > xfs_filblks_t len) /* length of extent */ > { > @@ -672,7 +672,7 @@ xfs_bmap_extents_to_btree( > xfs_trans_t *tp, /* transaction pointer */ > xfs_inode_t *ip, /* incore inode pointer */ > xfs_fsblock_t *firstblock, /* first-block-allocated */ > - xfs_bmap_free_t *flist, /* blocks freed in xaction */ > + struct xfs_defer_ops *flist, /* blocks freed in xaction */ > xfs_btree_cur_t **curp, /* cursor returned to caller */ > int wasdel, /* converting a delayed alloc */ > int *logflagsp, /* inode logging flags */ > @@ -940,7 +940,7 @@ xfs_bmap_add_attrfork_btree( > xfs_trans_t *tp, /* transaction pointer */ > xfs_inode_t *ip, /* incore inode pointer */ > xfs_fsblock_t *firstblock, /* first block allocated */ > - xfs_bmap_free_t *flist, /* blocks to free at commit */ > + struct xfs_defer_ops *flist, /* blocks to free at commit */ > int *flags) /* inode logging flags */ > { > xfs_btree_cur_t *cur; /* btree cursor */ > @@ -983,7 +983,7 @@ xfs_bmap_add_attrfork_extents( > xfs_trans_t *tp, /* transaction pointer */ > xfs_inode_t *ip, /* incore inode pointer */ > xfs_fsblock_t *firstblock, /* first block allocated */ > - xfs_bmap_free_t *flist, /* blocks to free at commit */ > + struct xfs_defer_ops *flist, /* blocks to free at commit */ > int *flags) /* inode logging flags */ > { > xfs_btree_cur_t *cur; /* bmap btree cursor */ > @@ -1018,7 +1018,7 @@ xfs_bmap_add_attrfork_local( > xfs_trans_t *tp, /* transaction pointer */ > xfs_inode_t *ip, /* incore inode pointer */ > xfs_fsblock_t *firstblock, /* first block allocated */ > - xfs_bmap_free_t *flist, /* blocks to free at commit */ > + struct xfs_defer_ops *flist, /* blocks to free at commit */ > int *flags) /* inode logging flags */ > { > xfs_da_args_t dargs; /* args for dir/attr code */ > @@ -1059,7 +1059,7 @@ xfs_bmap_add_attrfork( > int rsvd) /* xact may use reserved blks */ > { > xfs_fsblock_t firstblock; /* 1st block/ag allocated */ > - xfs_bmap_free_t flist; /* freed extent records */ > + struct xfs_defer_ops flist; /* freed extent records */ > xfs_mount_t *mp; /* mount structure */ > xfs_trans_t *tp; /* transaction pointer */ > int blks; /* space reservation */ > @@ -1125,7 +1125,7 @@ xfs_bmap_add_attrfork( > ip->i_afp = kmem_zone_zalloc(xfs_ifork_zone, KM_SLEEP); > ip->i_afp->if_flags = XFS_IFEXTENTS; > logflags = 0; > - xfs_bmap_init(&flist, &firstblock); > + xfs_defer_init(&flist, &firstblock); > switch (ip->i_d.di_format) { > case XFS_DINODE_FMT_LOCAL: > error = xfs_bmap_add_attrfork_local(tp, ip, &firstblock, &flist, > @@ -1165,7 +1165,7 @@ xfs_bmap_add_attrfork( > xfs_log_sb(tp); > } > > - error = xfs_bmap_finish(&tp, &flist, NULL); > + error = xfs_defer_finish(&tp, &flist, NULL); > if (error) > goto bmap_cancel; > error = xfs_trans_commit(tp); > @@ -1173,7 +1173,7 @@ xfs_bmap_add_attrfork( > return error; > > bmap_cancel: > - xfs_bmap_cancel(&flist); > + xfs_defer_cancel(&flist); > trans_cancel: > xfs_trans_cancel(tp); > xfs_iunlock(ip, XFS_ILOCK_EXCL); > @@ -2214,7 +2214,7 @@ xfs_bmap_add_extent_unwritten_real( > 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_fsblock_t *first, /* pointer to firstblock variable */ > - xfs_bmap_free_t *flist, /* list of extents to be freed */ > + struct xfs_defer_ops *flist, /* list of extents to be freed */ > int *logflagsp) /* inode logging flags */ > { > xfs_btree_cur_t *cur; /* btree cursor */ > @@ -4447,7 +4447,7 @@ xfs_bmapi_write( > xfs_extlen_t total, /* total blocks needed */ > struct xfs_bmbt_irec *mval, /* output: map values */ > int *nmap, /* i/o: mval size/count */ > - struct xfs_bmap_free *flist) /* i/o: list extents to free */ > + struct xfs_defer_ops *flist) /* i/o: list extents to free */ > { > struct xfs_mount *mp = ip->i_mount; > struct xfs_ifork *ifp; > @@ -4735,7 +4735,7 @@ xfs_bmap_del_extent( > xfs_inode_t *ip, /* incore inode pointer */ > xfs_trans_t *tp, /* current transaction pointer */ > xfs_extnum_t *idx, /* extent number to update/delete */ > - xfs_bmap_free_t *flist, /* list of extents to be freed */ > + struct xfs_defer_ops *flist, /* list of extents to be freed */ > xfs_btree_cur_t *cur, /* if null, not a btree */ > xfs_bmbt_irec_t *del, /* data to remove from extents */ > int *logflagsp, /* inode logging flags */ > @@ -5064,7 +5064,7 @@ xfs_bunmapi( > xfs_extnum_t nexts, /* number of extents max */ > xfs_fsblock_t *firstblock, /* first allocated block > controls a.g. for allocs */ > - xfs_bmap_free_t *flist, /* i/o: list extents to free */ > + struct xfs_defer_ops *flist, /* i/o: list extents to free */ > int *done) /* set if not done yet */ > { > xfs_btree_cur_t *cur; /* bmap btree cursor */ > @@ -5678,7 +5678,7 @@ xfs_bmap_shift_extents( > int *done, > xfs_fileoff_t stop_fsb, > xfs_fsblock_t *firstblock, > - struct xfs_bmap_free *flist, > + struct xfs_defer_ops *flist, > enum shift_direction direction, > int num_exts) > { > @@ -5832,7 +5832,7 @@ xfs_bmap_split_extent_at( > struct xfs_inode *ip, > xfs_fileoff_t split_fsb, > xfs_fsblock_t *firstfsb, > - struct xfs_bmap_free *free_list) > + struct xfs_defer_ops *free_list) > { > int whichfork = XFS_DATA_FORK; > struct xfs_btree_cur *cur = NULL; > @@ -5971,7 +5971,7 @@ xfs_bmap_split_extent( > { > struct xfs_mount *mp = ip->i_mount; > struct xfs_trans *tp; > - struct xfs_bmap_free free_list; > + struct xfs_defer_ops free_list; > xfs_fsblock_t firstfsb; > int error; > > @@ -5983,21 +5983,21 @@ xfs_bmap_split_extent( > xfs_ilock(ip, XFS_ILOCK_EXCL); > xfs_trans_ijoin(tp, ip, XFS_ILOCK_EXCL); > > - xfs_bmap_init(&free_list, &firstfsb); > + xfs_defer_init(&free_list, &firstfsb); > > error = xfs_bmap_split_extent_at(tp, ip, split_fsb, > &firstfsb, &free_list); > if (error) > goto out; > > - error = xfs_bmap_finish(&tp, &free_list, NULL); > + error = xfs_defer_finish(&tp, &free_list, NULL); > if (error) > goto out; > > return xfs_trans_commit(tp); > > out: > - xfs_bmap_cancel(&free_list); > + xfs_defer_cancel(&free_list); > xfs_trans_cancel(tp); > return error; > } > diff --git a/fs/xfs/libxfs/xfs_bmap.h b/fs/xfs/libxfs/xfs_bmap.h > index 6681bd9..e2a0425 100644 > --- a/fs/xfs/libxfs/xfs_bmap.h > +++ b/fs/xfs/libxfs/xfs_bmap.h > @@ -32,7 +32,7 @@ extern kmem_zone_t *xfs_bmap_free_item_zone; > */ > struct xfs_bmalloca { > xfs_fsblock_t *firstblock; /* i/o first block allocated */ > - struct xfs_bmap_free *flist; /* bmap freelist */ > + struct xfs_defer_ops *flist; /* bmap freelist */ > struct xfs_trans *tp; /* transaction pointer */ > struct xfs_inode *ip; /* incore inode pointer */ > struct xfs_bmbt_irec prev; /* extent before the new one */ > @@ -164,7 +164,7 @@ void xfs_bmap_trace_exlist(struct xfs_inode *ip, xfs_extnum_t cnt, > > int xfs_bmap_add_attrfork(struct xfs_inode *ip, int size, int rsvd); > void xfs_bmap_local_to_extents_empty(struct xfs_inode *ip, int whichfork); > -void xfs_bmap_add_free(struct xfs_mount *mp, struct xfs_bmap_free *flist, > +void xfs_bmap_add_free(struct xfs_mount *mp, struct xfs_defer_ops *flist, > xfs_fsblock_t bno, xfs_filblks_t len); > void xfs_bmap_compute_maxlevels(struct xfs_mount *mp, int whichfork); > int xfs_bmap_first_unused(struct xfs_trans *tp, struct xfs_inode *ip, > @@ -186,18 +186,18 @@ int xfs_bmapi_write(struct xfs_trans *tp, struct xfs_inode *ip, > xfs_fileoff_t bno, xfs_filblks_t len, int flags, > xfs_fsblock_t *firstblock, xfs_extlen_t total, > struct xfs_bmbt_irec *mval, int *nmap, > - struct xfs_bmap_free *flist); > + struct xfs_defer_ops *flist); > int xfs_bunmapi(struct xfs_trans *tp, struct xfs_inode *ip, > xfs_fileoff_t bno, xfs_filblks_t len, int flags, > xfs_extnum_t nexts, xfs_fsblock_t *firstblock, > - struct xfs_bmap_free *flist, int *done); > + struct xfs_defer_ops *flist, int *done); > int xfs_check_nostate_extents(struct xfs_ifork *ifp, xfs_extnum_t idx, > xfs_extnum_t num); > uint xfs_default_attroffset(struct xfs_inode *ip); > int xfs_bmap_shift_extents(struct xfs_trans *tp, struct xfs_inode *ip, > xfs_fileoff_t *next_fsb, xfs_fileoff_t offset_shift_fsb, > int *done, xfs_fileoff_t stop_fsb, xfs_fsblock_t *firstblock, > - struct xfs_bmap_free *flist, enum shift_direction direction, > + struct xfs_defer_ops *flist, enum shift_direction direction, > int num_exts); > int xfs_bmap_split_extent(struct xfs_inode *ip, xfs_fileoff_t split_offset); > > diff --git a/fs/xfs/libxfs/xfs_btree.h b/fs/xfs/libxfs/xfs_btree.h > index 0ec3055..ae714a8 100644 > --- a/fs/xfs/libxfs/xfs_btree.h > +++ b/fs/xfs/libxfs/xfs_btree.h > @@ -19,7 +19,7 @@ > #define __XFS_BTREE_H__ > > struct xfs_buf; > -struct xfs_bmap_free; > +struct xfs_defer_ops; > struct xfs_inode; > struct xfs_mount; > struct xfs_trans; > @@ -234,11 +234,12 @@ typedef struct xfs_btree_cur > union { > struct { /* needed for BNO, CNT, INO */ > struct xfs_buf *agbp; /* agf/agi buffer pointer */ > + struct xfs_defer_ops *flist; /* deferred updates */ > xfs_agnumber_t agno; /* ag number */ > } a; > struct { /* needed for BMAP */ > struct xfs_inode *ip; /* pointer to our inode */ > - struct xfs_bmap_free *flist; /* list to free after */ > + struct xfs_defer_ops *flist; /* deferred updates */ > xfs_fsblock_t firstblock; /* 1st blk allocated */ > int allocated; /* count of alloced */ > short forksize; /* fork's inode space */ > diff --git a/fs/xfs/libxfs/xfs_da_btree.h b/fs/xfs/libxfs/xfs_da_btree.h > index 6e153e3..249813a 100644 > --- a/fs/xfs/libxfs/xfs_da_btree.h > +++ b/fs/xfs/libxfs/xfs_da_btree.h > @@ -19,7 +19,7 @@ > #ifndef __XFS_DA_BTREE_H__ > #define __XFS_DA_BTREE_H__ > > -struct xfs_bmap_free; > +struct xfs_defer_ops; > struct xfs_inode; > struct xfs_trans; > struct zone; > @@ -70,7 +70,7 @@ typedef struct xfs_da_args { > xfs_ino_t inumber; /* input/output inode number */ > struct xfs_inode *dp; /* directory inode to manipulate */ > xfs_fsblock_t *firstblock; /* ptr to firstblock for bmap calls */ > - struct xfs_bmap_free *flist; /* ptr to freelist for bmap_finish */ > + struct xfs_defer_ops *flist; /* ptr to freelist for bmap_finish */ > struct xfs_trans *trans; /* current trans (changes over time) */ > xfs_extlen_t total; /* total blocks needed, for 1st bmap */ > int whichfork; /* data or attribute fork */ > diff --git a/fs/xfs/libxfs/xfs_defer.h b/fs/xfs/libxfs/xfs_defer.h > index 4c05ba6..743fc32 100644 > --- a/fs/xfs/libxfs/xfs_defer.h > +++ b/fs/xfs/libxfs/xfs_defer.h > @@ -94,11 +94,4 @@ struct xfs_defer_op_type { > void xfs_defer_init_op_type(const struct xfs_defer_op_type *type); > void xfs_defer_init_types(void); > > -/* XXX: compatibility shims, will go away in the next patch */ > -#define xfs_bmap_finish xfs_defer_finish > -#define xfs_bmap_cancel xfs_defer_cancel > -#define xfs_bmap_init xfs_defer_init > -#define xfs_bmap_free xfs_defer_ops > -typedef struct xfs_defer_ops xfs_bmap_free_t; > - > #endif /* __XFS_DEFER_H__ */ > diff --git a/fs/xfs/libxfs/xfs_dir2.c b/fs/xfs/libxfs/xfs_dir2.c > index 945c0345..0523100 100644 > --- a/fs/xfs/libxfs/xfs_dir2.c > +++ b/fs/xfs/libxfs/xfs_dir2.c > @@ -260,7 +260,7 @@ xfs_dir_createname( > struct xfs_name *name, > xfs_ino_t inum, /* new entry inode number */ > xfs_fsblock_t *first, /* bmap's firstblock */ > - xfs_bmap_free_t *flist, /* bmap's freeblock list */ > + struct xfs_defer_ops *flist, /* bmap's freeblock list */ > xfs_extlen_t total) /* bmap's total block count */ > { > struct xfs_da_args *args; > @@ -437,7 +437,7 @@ xfs_dir_removename( > struct xfs_name *name, > xfs_ino_t ino, > xfs_fsblock_t *first, /* bmap's firstblock */ > - xfs_bmap_free_t *flist, /* bmap's freeblock list */ > + struct xfs_defer_ops *flist, /* bmap's freeblock list */ > xfs_extlen_t total) /* bmap's total block count */ > { > struct xfs_da_args *args; > @@ -499,7 +499,7 @@ xfs_dir_replace( > struct xfs_name *name, /* name of entry to replace */ > xfs_ino_t inum, /* new inode number */ > xfs_fsblock_t *first, /* bmap's firstblock */ > - xfs_bmap_free_t *flist, /* bmap's freeblock list */ > + struct xfs_defer_ops *flist, /* bmap's freeblock list */ > xfs_extlen_t total) /* bmap's total block count */ > { > struct xfs_da_args *args; > diff --git a/fs/xfs/libxfs/xfs_dir2.h b/fs/xfs/libxfs/xfs_dir2.h > index 0a62e73..5737d85 100644 > --- a/fs/xfs/libxfs/xfs_dir2.h > +++ b/fs/xfs/libxfs/xfs_dir2.h > @@ -18,7 +18,7 @@ > #ifndef __XFS_DIR2_H__ > #define __XFS_DIR2_H__ > > -struct xfs_bmap_free; > +struct xfs_defer_ops; > struct xfs_da_args; > struct xfs_inode; > struct xfs_mount; > @@ -129,18 +129,18 @@ extern int xfs_dir_init(struct xfs_trans *tp, struct xfs_inode *dp, > extern int xfs_dir_createname(struct xfs_trans *tp, struct xfs_inode *dp, > struct xfs_name *name, xfs_ino_t inum, > xfs_fsblock_t *first, > - struct xfs_bmap_free *flist, xfs_extlen_t tot); > + struct xfs_defer_ops *flist, xfs_extlen_t tot); > extern int xfs_dir_lookup(struct xfs_trans *tp, struct xfs_inode *dp, > struct xfs_name *name, xfs_ino_t *inum, > struct xfs_name *ci_name); > extern int xfs_dir_removename(struct xfs_trans *tp, struct xfs_inode *dp, > struct xfs_name *name, xfs_ino_t ino, > xfs_fsblock_t *first, > - struct xfs_bmap_free *flist, xfs_extlen_t tot); > + struct xfs_defer_ops *flist, xfs_extlen_t tot); > extern int xfs_dir_replace(struct xfs_trans *tp, struct xfs_inode *dp, > struct xfs_name *name, xfs_ino_t inum, > xfs_fsblock_t *first, > - struct xfs_bmap_free *flist, xfs_extlen_t tot); > + struct xfs_defer_ops *flist, xfs_extlen_t tot); > extern int xfs_dir_canenter(struct xfs_trans *tp, struct xfs_inode *dp, > struct xfs_name *name); > > diff --git a/fs/xfs/libxfs/xfs_ialloc.c b/fs/xfs/libxfs/xfs_ialloc.c > index 9ae9a43..f2e29a1 100644 > --- a/fs/xfs/libxfs/xfs_ialloc.c > +++ b/fs/xfs/libxfs/xfs_ialloc.c > @@ -1818,7 +1818,7 @@ xfs_difree_inode_chunk( > struct xfs_mount *mp, > xfs_agnumber_t agno, > struct xfs_inobt_rec_incore *rec, > - struct xfs_bmap_free *flist) > + struct xfs_defer_ops *flist) > { > xfs_agblock_t sagbno = XFS_AGINO_TO_AGBNO(mp, rec->ir_startino); > int startidx, endidx; > @@ -1890,7 +1890,7 @@ xfs_difree_inobt( > struct xfs_trans *tp, > struct xfs_buf *agbp, > xfs_agino_t agino, > - struct xfs_bmap_free *flist, > + struct xfs_defer_ops *flist, > struct xfs_icluster *xic, > struct xfs_inobt_rec_incore *orec) > { > @@ -2122,7 +2122,7 @@ int > xfs_difree( > struct xfs_trans *tp, /* transaction pointer */ > xfs_ino_t inode, /* inode to be freed */ > - struct xfs_bmap_free *flist, /* extents to free */ > + struct xfs_defer_ops *flist, /* extents to free */ > struct xfs_icluster *xic) /* cluster info if deleted */ > { > /* REFERENCED */ > diff --git a/fs/xfs/libxfs/xfs_ialloc.h b/fs/xfs/libxfs/xfs_ialloc.h > index 6e450df..2e06b67 100644 > --- a/fs/xfs/libxfs/xfs_ialloc.h > +++ b/fs/xfs/libxfs/xfs_ialloc.h > @@ -95,7 +95,7 @@ int /* error */ > xfs_difree( > struct xfs_trans *tp, /* transaction pointer */ > xfs_ino_t inode, /* inode to be freed */ > - struct xfs_bmap_free *flist, /* extents to free */ > + struct xfs_defer_ops *flist, /* extents to free */ > struct xfs_icluster *ifree); /* cluster info if deleted */ > > /* > diff --git a/fs/xfs/libxfs/xfs_trans_resv.c b/fs/xfs/libxfs/xfs_trans_resv.c > index 68cb1e7..4c7eb9d 100644 > --- a/fs/xfs/libxfs/xfs_trans_resv.c > +++ b/fs/xfs/libxfs/xfs_trans_resv.c > @@ -153,9 +153,9 @@ xfs_calc_finobt_res( > * item logged to try to account for the overhead of the transaction mechanism. > * > * Note: Most of the reservations underestimate the number of allocation > - * groups into which they could free extents in the xfs_bmap_finish() call. > + * groups into which they could free extents in the xfs_defer_finish() call. > * This is because the number in the worst case is quite high and quite > - * unusual. In order to fix this we need to change xfs_bmap_finish() to free > + * unusual. In order to fix this we need to change xfs_defer_finish() to free > * extents in only a single AG at a time. This will require changes to the > * EFI code as well, however, so that the EFI for the extents not freed is > * logged again in each transaction. See SGI PV #261917. > diff --git a/fs/xfs/xfs_bmap_util.c b/fs/xfs/xfs_bmap_util.c > index 972a27a..928dfa4 100644 > --- a/fs/xfs/xfs_bmap_util.c > +++ b/fs/xfs/xfs_bmap_util.c > @@ -685,7 +685,7 @@ xfs_bmap_punch_delalloc_range( > xfs_bmbt_irec_t imap; > int nimaps = 1; > xfs_fsblock_t firstblock; > - xfs_bmap_free_t flist; > + struct xfs_defer_ops flist; > > /* > * Map the range first and check that it is a delalloc extent > @@ -721,7 +721,7 @@ xfs_bmap_punch_delalloc_range( > * allocated or freed for a delalloc extent and hence we need > * don't cancel or finish them after the xfs_bunmapi() call. > */ > - xfs_bmap_init(&flist, &firstblock); > + xfs_defer_init(&flist, &firstblock); > error = xfs_bunmapi(NULL, ip, start_fsb, 1, 0, 1, &firstblock, > &flist, &done); > if (error) > @@ -884,7 +884,7 @@ xfs_alloc_file_space( > int rt; > xfs_trans_t *tp; > xfs_bmbt_irec_t imaps[1], *imapp; > - xfs_bmap_free_t free_list; > + struct xfs_defer_ops free_list; > uint qblocks, resblks, resrtextents; > int error; > > @@ -975,7 +975,7 @@ xfs_alloc_file_space( > > xfs_trans_ijoin(tp, ip, 0); > > - xfs_bmap_init(&free_list, &firstfsb); > + xfs_defer_init(&free_list, &firstfsb); > error = xfs_bmapi_write(tp, ip, startoffset_fsb, > allocatesize_fsb, alloc_type, &firstfsb, > resblks, imapp, &nimaps, &free_list); > @@ -985,7 +985,7 @@ xfs_alloc_file_space( > /* > * Complete the transaction > */ > - error = xfs_bmap_finish(&tp, &free_list, NULL); > + error = xfs_defer_finish(&tp, &free_list, NULL); > if (error) > goto error0; > > @@ -1008,7 +1008,7 @@ xfs_alloc_file_space( > return error; > > error0: /* Cancel bmap, unlock inode, unreserve quota blocks, cancel trans */ > - xfs_bmap_cancel(&free_list); > + xfs_defer_cancel(&free_list); > xfs_trans_unreserve_quota_nblks(tp, ip, (long)qblocks, 0, quota_flag); > > error1: /* Just cancel transaction */ > @@ -1122,7 +1122,7 @@ xfs_free_file_space( > xfs_fileoff_t endoffset_fsb; > int error; > xfs_fsblock_t firstfsb; > - xfs_bmap_free_t free_list; > + struct xfs_defer_ops free_list; > xfs_bmbt_irec_t imap; > xfs_off_t ioffset; > xfs_off_t iendoffset; > @@ -1245,7 +1245,7 @@ xfs_free_file_space( > /* > * issue the bunmapi() call to free the blocks > */ > - xfs_bmap_init(&free_list, &firstfsb); > + xfs_defer_init(&free_list, &firstfsb); > error = xfs_bunmapi(tp, ip, startoffset_fsb, > endoffset_fsb - startoffset_fsb, > 0, 2, &firstfsb, &free_list, &done); > @@ -1255,7 +1255,7 @@ xfs_free_file_space( > /* > * complete the transaction > */ > - error = xfs_bmap_finish(&tp, &free_list, NULL); > + error = xfs_defer_finish(&tp, &free_list, ip); > if (error) > goto error0; > > @@ -1267,7 +1267,7 @@ xfs_free_file_space( > return error; > > error0: > - xfs_bmap_cancel(&free_list); > + xfs_defer_cancel(&free_list); > error1: > xfs_trans_cancel(tp); > xfs_iunlock(ip, XFS_ILOCK_EXCL); > @@ -1333,7 +1333,7 @@ xfs_shift_file_space( > struct xfs_mount *mp = ip->i_mount; > struct xfs_trans *tp; > int error; > - struct xfs_bmap_free free_list; > + struct xfs_defer_ops free_list; > xfs_fsblock_t first_block; > xfs_fileoff_t stop_fsb; > xfs_fileoff_t next_fsb; > @@ -1411,7 +1411,7 @@ xfs_shift_file_space( > > xfs_trans_ijoin(tp, ip, XFS_ILOCK_EXCL); > > - xfs_bmap_init(&free_list, &first_block); > + xfs_defer_init(&free_list, &first_block); > > /* > * We are using the write transaction in which max 2 bmbt > @@ -1423,7 +1423,7 @@ xfs_shift_file_space( > if (error) > goto out_bmap_cancel; > > - error = xfs_bmap_finish(&tp, &free_list, NULL); > + error = xfs_defer_finish(&tp, &free_list, NULL); > if (error) > goto out_bmap_cancel; > > @@ -1433,7 +1433,7 @@ xfs_shift_file_space( > return error; > > out_bmap_cancel: > - xfs_bmap_cancel(&free_list); > + xfs_defer_cancel(&free_list); > out_trans_cancel: > xfs_trans_cancel(tp); > return error; > diff --git a/fs/xfs/xfs_dquot.c b/fs/xfs/xfs_dquot.c > index be17f0a..764e1cc 100644 > --- a/fs/xfs/xfs_dquot.c > +++ b/fs/xfs/xfs_dquot.c > @@ -307,7 +307,7 @@ xfs_qm_dqalloc( > xfs_buf_t **O_bpp) > { > xfs_fsblock_t firstblock; > - xfs_bmap_free_t flist; > + struct xfs_defer_ops flist; > xfs_bmbt_irec_t map; > int nmaps, error; > xfs_buf_t *bp; > @@ -320,7 +320,7 @@ xfs_qm_dqalloc( > /* > * Initialize the bmap freelist prior to calling bmapi code. > */ > - xfs_bmap_init(&flist, &firstblock); > + xfs_defer_init(&flist, &firstblock); > xfs_ilock(quotip, XFS_ILOCK_EXCL); > /* > * Return if this type of quotas is turned off while we didn't > @@ -368,7 +368,7 @@ xfs_qm_dqalloc( > dqp->dq_flags & XFS_DQ_ALLTYPES, bp); > > /* > - * xfs_bmap_finish() may commit the current transaction and > + * xfs_defer_finish() may commit the current transaction and > * start a second transaction if the freelist is not empty. > * > * Since we still want to modify this buffer, we need to > @@ -382,7 +382,7 @@ xfs_qm_dqalloc( > > xfs_trans_bhold(tp, bp); > > - error = xfs_bmap_finish(tpp, &flist, NULL); > + error = xfs_defer_finish(tpp, &flist, NULL); > if (error) > goto error1; > > @@ -398,7 +398,7 @@ xfs_qm_dqalloc( > return 0; > > error1: > - xfs_bmap_cancel(&flist); > + xfs_defer_cancel(&flist); > error0: > xfs_iunlock(quotip, XFS_ILOCK_EXCL); > > diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c > index d2389bb..3ce50da 100644 > --- a/fs/xfs/xfs_inode.c > +++ b/fs/xfs/xfs_inode.c > @@ -1123,7 +1123,7 @@ xfs_create( > struct xfs_inode *ip = NULL; > struct xfs_trans *tp = NULL; > int error; > - xfs_bmap_free_t free_list; > + struct xfs_defer_ops free_list; > xfs_fsblock_t first_block; > bool unlock_dp_on_error = false; > prid_t prid; > @@ -1183,7 +1183,7 @@ xfs_create( > XFS_IOLOCK_PARENT | XFS_ILOCK_PARENT); > unlock_dp_on_error = true; > > - xfs_bmap_init(&free_list, &first_block); > + xfs_defer_init(&free_list, &first_block); > > /* > * Reserve disk quota and the inode. > @@ -1254,7 +1254,7 @@ xfs_create( > */ > xfs_qm_vop_create_dqattach(tp, ip, udqp, gdqp, pdqp); > > - error = xfs_bmap_finish(&tp, &free_list, NULL); > + error = xfs_defer_finish(&tp, &free_list, NULL); > if (error) > goto out_bmap_cancel; > > @@ -1270,7 +1270,7 @@ xfs_create( > return 0; > > out_bmap_cancel: > - xfs_bmap_cancel(&free_list); > + xfs_defer_cancel(&free_list); > out_trans_cancel: > xfs_trans_cancel(tp); > out_release_inode: > @@ -1402,7 +1402,7 @@ xfs_link( > xfs_mount_t *mp = tdp->i_mount; > xfs_trans_t *tp; > int error; > - xfs_bmap_free_t free_list; > + struct xfs_defer_ops free_list; > xfs_fsblock_t first_block; > int resblks; > > @@ -1453,7 +1453,7 @@ xfs_link( > goto error_return; > } > > - xfs_bmap_init(&free_list, &first_block); > + xfs_defer_init(&free_list, &first_block); > > /* > * Handle initial link state of O_TMPFILE inode > @@ -1483,9 +1483,9 @@ xfs_link( > if (mp->m_flags & (XFS_MOUNT_WSYNC|XFS_MOUNT_DIRSYNC)) > xfs_trans_set_sync(tp); > > - error = xfs_bmap_finish(&tp, &free_list, NULL); > + error = xfs_defer_finish(&tp, &free_list, NULL); > if (error) { > - xfs_bmap_cancel(&free_list); > + xfs_defer_cancel(&free_list); > goto error_return; > } > > @@ -1527,7 +1527,7 @@ xfs_itruncate_extents( > { > struct xfs_mount *mp = ip->i_mount; > struct xfs_trans *tp = *tpp; > - xfs_bmap_free_t free_list; > + struct xfs_defer_ops free_list; > xfs_fsblock_t first_block; > xfs_fileoff_t first_unmap_block; > xfs_fileoff_t last_block; > @@ -1563,7 +1563,7 @@ xfs_itruncate_extents( > ASSERT(first_unmap_block < last_block); > unmap_len = last_block - first_unmap_block + 1; > while (!done) { > - xfs_bmap_init(&free_list, &first_block); > + xfs_defer_init(&free_list, &first_block); > error = xfs_bunmapi(tp, ip, > first_unmap_block, unmap_len, > xfs_bmapi_aflag(whichfork), > @@ -1577,7 +1577,7 @@ xfs_itruncate_extents( > * Duplicate the transaction that has the permanent > * reservation and commit the old transaction. > */ > - error = xfs_bmap_finish(&tp, &free_list, ip); > + error = xfs_defer_finish(&tp, &free_list, ip); > if (error) > goto out_bmap_cancel; > > @@ -1603,7 +1603,7 @@ out_bmap_cancel: > * the transaction can be properly aborted. We just need to make sure > * we're not holding any resources that we were not when we came in. > */ > - xfs_bmap_cancel(&free_list); > + xfs_defer_cancel(&free_list); > goto out; > } > > @@ -1744,7 +1744,7 @@ STATIC int > xfs_inactive_ifree( > struct xfs_inode *ip) > { > - xfs_bmap_free_t free_list; > + struct xfs_defer_ops free_list; > xfs_fsblock_t first_block; > struct xfs_mount *mp = ip->i_mount; > struct xfs_trans *tp; > @@ -1781,7 +1781,7 @@ xfs_inactive_ifree( > xfs_ilock(ip, XFS_ILOCK_EXCL); > xfs_trans_ijoin(tp, ip, 0); > > - xfs_bmap_init(&free_list, &first_block); > + xfs_defer_init(&free_list, &first_block); > error = xfs_ifree(tp, ip, &free_list); > if (error) { > /* > @@ -1808,11 +1808,11 @@ xfs_inactive_ifree( > * Just ignore errors at this point. There is nothing we can do except > * to try to keep going. Make sure it's not a silent error. > */ > - error = xfs_bmap_finish(&tp, &free_list, NULL); > + error = xfs_defer_finish(&tp, &free_list, NULL); > if (error) { > - xfs_notice(mp, "%s: xfs_bmap_finish returned error %d", > + xfs_notice(mp, "%s: xfs_defer_finish returned error %d", > __func__, error); > - xfs_bmap_cancel(&free_list); > + xfs_defer_cancel(&free_list); > } > error = xfs_trans_commit(tp); > if (error) > @@ -2368,7 +2368,7 @@ int > xfs_ifree( > xfs_trans_t *tp, > xfs_inode_t *ip, > - xfs_bmap_free_t *flist) > + struct xfs_defer_ops *flist) > { > int error; > struct xfs_icluster xic = { 0 }; > @@ -2475,7 +2475,7 @@ xfs_iunpin_wait( > * directory entry. > * > * This is still safe from a transactional point of view - it is not until we > - * get to xfs_bmap_finish() that we have the possibility of multiple > + * get to xfs_defer_finish() that we have the possibility of multiple > * transactions in this operation. Hence as long as we remove the directory > * entry and drop the link count in the first transaction of the remove > * operation, there are no transactional constraints on the ordering here. > @@ -2490,7 +2490,7 @@ xfs_remove( > xfs_trans_t *tp = NULL; > int is_dir = S_ISDIR(VFS_I(ip)->i_mode); > int error = 0; > - xfs_bmap_free_t free_list; > + struct xfs_defer_ops free_list; > xfs_fsblock_t first_block; > uint resblks; > > @@ -2572,7 +2572,7 @@ xfs_remove( > if (error) > goto out_trans_cancel; > > - xfs_bmap_init(&free_list, &first_block); > + xfs_defer_init(&free_list, &first_block); > error = xfs_dir_removename(tp, dp, name, ip->i_ino, > &first_block, &free_list, resblks); > if (error) { > @@ -2588,7 +2588,7 @@ xfs_remove( > if (mp->m_flags & (XFS_MOUNT_WSYNC|XFS_MOUNT_DIRSYNC)) > xfs_trans_set_sync(tp); > > - error = xfs_bmap_finish(&tp, &free_list, NULL); > + error = xfs_defer_finish(&tp, &free_list, NULL); > if (error) > goto out_bmap_cancel; > > @@ -2602,7 +2602,7 @@ xfs_remove( > return 0; > > out_bmap_cancel: > - xfs_bmap_cancel(&free_list); > + xfs_defer_cancel(&free_list); > out_trans_cancel: > xfs_trans_cancel(tp); > std_return: > @@ -2663,7 +2663,7 @@ xfs_sort_for_rename( > static int > xfs_finish_rename( > struct xfs_trans *tp, > - struct xfs_bmap_free *free_list) > + struct xfs_defer_ops *free_list) > { > int error; > > @@ -2674,9 +2674,9 @@ xfs_finish_rename( > if (tp->t_mountp->m_flags & (XFS_MOUNT_WSYNC|XFS_MOUNT_DIRSYNC)) > xfs_trans_set_sync(tp); > > - error = xfs_bmap_finish(&tp, free_list, NULL); > + error = xfs_defer_finish(&tp, free_list, NULL); > if (error) { > - xfs_bmap_cancel(free_list); > + xfs_defer_cancel(free_list); > xfs_trans_cancel(tp); > return error; > } > @@ -2698,7 +2698,7 @@ xfs_cross_rename( > struct xfs_inode *dp2, > struct xfs_name *name2, > struct xfs_inode *ip2, > - struct xfs_bmap_free *free_list, > + struct xfs_defer_ops *free_list, > xfs_fsblock_t *first_block, > int spaceres) > { > @@ -2801,7 +2801,7 @@ xfs_cross_rename( > return xfs_finish_rename(tp, free_list); > > out_trans_abort: > - xfs_bmap_cancel(free_list); > + xfs_defer_cancel(free_list); > xfs_trans_cancel(tp); > return error; > } > @@ -2856,7 +2856,7 @@ xfs_rename( > { > struct xfs_mount *mp = src_dp->i_mount; > struct xfs_trans *tp; > - struct xfs_bmap_free free_list; > + struct xfs_defer_ops free_list; > xfs_fsblock_t first_block; > struct xfs_inode *wip = NULL; /* whiteout inode */ > struct xfs_inode *inodes[__XFS_SORT_INODES]; > @@ -2945,7 +2945,7 @@ xfs_rename( > goto out_trans_cancel; > } > > - xfs_bmap_init(&free_list, &first_block); > + xfs_defer_init(&free_list, &first_block); > > /* RENAME_EXCHANGE is unique from here on. */ > if (flags & RENAME_EXCHANGE) > @@ -3131,7 +3131,7 @@ xfs_rename( > return error; > > out_bmap_cancel: > - xfs_bmap_cancel(&free_list); > + xfs_defer_cancel(&free_list); > out_trans_cancel: > xfs_trans_cancel(tp); > out_release_wip: > diff --git a/fs/xfs/xfs_inode.h b/fs/xfs/xfs_inode.h > index 99d7522..633f2af 100644 > --- a/fs/xfs/xfs_inode.h > +++ b/fs/xfs/xfs_inode.h > @@ -27,7 +27,7 @@ > struct xfs_dinode; > struct xfs_inode; > struct xfs_buf; > -struct xfs_bmap_free; > +struct xfs_defer_ops; > struct xfs_bmbt_irec; > struct xfs_inode_log_item; > struct xfs_mount; > @@ -398,7 +398,7 @@ uint xfs_ilock_attr_map_shared(struct xfs_inode *); > > uint xfs_ip2xflags(struct xfs_inode *); > int xfs_ifree(struct xfs_trans *, xfs_inode_t *, > - struct xfs_bmap_free *); > + struct xfs_defer_ops *); > int xfs_itruncate_extents(struct xfs_trans **, struct xfs_inode *, > int, xfs_fsize_t); > void xfs_iext_realloc(xfs_inode_t *, int, int); > diff --git a/fs/xfs/xfs_iomap.c b/fs/xfs/xfs_iomap.c > index b090bc1..cb7abe84 100644 > --- a/fs/xfs/xfs_iomap.c > +++ b/fs/xfs/xfs_iomap.c > @@ -128,7 +128,7 @@ xfs_iomap_write_direct( > int quota_flag; > int rt; > xfs_trans_t *tp; > - xfs_bmap_free_t free_list; > + struct xfs_defer_ops free_list; > uint qblocks, resblks, resrtextents; > int error; > int lockmode; > @@ -231,7 +231,7 @@ xfs_iomap_write_direct( > * From this point onwards we overwrite the imap pointer that the > * caller gave to us. > */ > - xfs_bmap_init(&free_list, &firstfsb); > + xfs_defer_init(&free_list, &firstfsb); > nimaps = 1; > error = xfs_bmapi_write(tp, ip, offset_fsb, count_fsb, > bmapi_flags, &firstfsb, resblks, imap, > @@ -242,7 +242,7 @@ xfs_iomap_write_direct( > /* > * Complete the transaction > */ > - error = xfs_bmap_finish(&tp, &free_list, NULL); > + error = xfs_defer_finish(&tp, &free_list, NULL); > if (error) > goto out_bmap_cancel; > > @@ -266,7 +266,7 @@ out_unlock: > return error; > > out_bmap_cancel: > - xfs_bmap_cancel(&free_list); > + xfs_defer_cancel(&free_list); > xfs_trans_unreserve_quota_nblks(tp, ip, (long)qblocks, 0, quota_flag); > out_trans_cancel: > xfs_trans_cancel(tp); > @@ -685,7 +685,7 @@ xfs_iomap_write_allocate( > xfs_fileoff_t offset_fsb, last_block; > xfs_fileoff_t end_fsb, map_start_fsb; > xfs_fsblock_t first_block; > - xfs_bmap_free_t free_list; > + struct xfs_defer_ops free_list; > xfs_filblks_t count_fsb; > xfs_trans_t *tp; > int nimaps; > @@ -727,7 +727,7 @@ xfs_iomap_write_allocate( > xfs_ilock(ip, XFS_ILOCK_EXCL); > xfs_trans_ijoin(tp, ip, 0); > > - xfs_bmap_init(&free_list, &first_block); > + xfs_defer_init(&free_list, &first_block); > > /* > * it is possible that the extents have changed since > @@ -787,7 +787,7 @@ xfs_iomap_write_allocate( > if (error) > goto trans_cancel; > > - error = xfs_bmap_finish(&tp, &free_list, NULL); > + error = xfs_defer_finish(&tp, &free_list, NULL); > if (error) > goto trans_cancel; > > @@ -821,7 +821,7 @@ xfs_iomap_write_allocate( > } > > trans_cancel: > - xfs_bmap_cancel(&free_list); > + xfs_defer_cancel(&free_list); > xfs_trans_cancel(tp); > error0: > xfs_iunlock(ip, XFS_ILOCK_EXCL); > @@ -842,7 +842,7 @@ xfs_iomap_write_unwritten( > int nimaps; > xfs_trans_t *tp; > xfs_bmbt_irec_t imap; > - xfs_bmap_free_t free_list; > + struct xfs_defer_ops free_list; > xfs_fsize_t i_size; > uint resblks; > int error; > @@ -886,7 +886,7 @@ xfs_iomap_write_unwritten( > /* > * Modify the unwritten extent state of the buffer. > */ > - xfs_bmap_init(&free_list, &firstfsb); > + xfs_defer_init(&free_list, &firstfsb); > nimaps = 1; > error = xfs_bmapi_write(tp, ip, offset_fsb, count_fsb, > XFS_BMAPI_CONVERT, &firstfsb, resblks, > @@ -909,7 +909,7 @@ xfs_iomap_write_unwritten( > xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); > } > > - error = xfs_bmap_finish(&tp, &free_list, NULL); > + error = xfs_defer_finish(&tp, &free_list, NULL); > if (error) > goto error_on_bmapi_transaction; > > @@ -936,7 +936,7 @@ xfs_iomap_write_unwritten( > return 0; > > error_on_bmapi_transaction: > - xfs_bmap_cancel(&free_list); > + xfs_defer_cancel(&free_list); > xfs_trans_cancel(tp); > xfs_iunlock(ip, XFS_ILOCK_EXCL); > return error; > diff --git a/fs/xfs/xfs_rtalloc.c b/fs/xfs/xfs_rtalloc.c > index 627f7e6..c761a6a 100644 > --- a/fs/xfs/xfs_rtalloc.c > +++ b/fs/xfs/xfs_rtalloc.c > @@ -770,7 +770,7 @@ xfs_growfs_rt_alloc( > xfs_daddr_t d; /* disk block address */ > int error; /* error return value */ > xfs_fsblock_t firstblock;/* first block allocated in xaction */ > - struct xfs_bmap_free flist; /* list of freed blocks */ > + struct xfs_defer_ops flist; /* list of freed blocks */ > xfs_fsblock_t fsbno; /* filesystem block for bno */ > struct xfs_bmbt_irec map; /* block map output */ > int nmap; /* number of block maps */ > @@ -795,7 +795,7 @@ xfs_growfs_rt_alloc( > xfs_ilock(ip, XFS_ILOCK_EXCL); > xfs_trans_ijoin(tp, ip, XFS_ILOCK_EXCL); > > - xfs_bmap_init(&flist, &firstblock); > + xfs_defer_init(&flist, &firstblock); > /* > * Allocate blocks to the bitmap file. > */ > @@ -810,7 +810,7 @@ xfs_growfs_rt_alloc( > /* > * Free any blocks freed up in the transaction, then commit. > */ > - error = xfs_bmap_finish(&tp, &flist, NULL); > + error = xfs_defer_finish(&tp, &flist, NULL); > if (error) > goto out_bmap_cancel; > error = xfs_trans_commit(tp); > @@ -863,7 +863,7 @@ xfs_growfs_rt_alloc( > return 0; > > out_bmap_cancel: > - xfs_bmap_cancel(&flist); > + xfs_defer_cancel(&flist); > out_trans_cancel: > xfs_trans_cancel(tp); > return error; > diff --git a/fs/xfs/xfs_symlink.c b/fs/xfs/xfs_symlink.c > index 20af47b..3b005ec 100644 > --- a/fs/xfs/xfs_symlink.c > +++ b/fs/xfs/xfs_symlink.c > @@ -173,7 +173,7 @@ xfs_symlink( > struct xfs_inode *ip = NULL; > int error = 0; > int pathlen; > - struct xfs_bmap_free free_list; > + struct xfs_defer_ops free_list; > xfs_fsblock_t first_block; > bool unlock_dp_on_error = false; > xfs_fileoff_t first_fsb; > @@ -270,7 +270,7 @@ xfs_symlink( > * Initialize the bmap freelist prior to calling either > * bmapi or the directory create code. > */ > - xfs_bmap_init(&free_list, &first_block); > + xfs_defer_init(&free_list, &first_block); > > /* > * Allocate an inode for the symlink. > @@ -377,7 +377,7 @@ xfs_symlink( > xfs_trans_set_sync(tp); > } > > - error = xfs_bmap_finish(&tp, &free_list, NULL); > + error = xfs_defer_finish(&tp, &free_list, NULL); > if (error) > goto out_bmap_cancel; > > @@ -393,7 +393,7 @@ xfs_symlink( > return 0; > > out_bmap_cancel: > - xfs_bmap_cancel(&free_list); > + xfs_defer_cancel(&free_list); > out_trans_cancel: > xfs_trans_cancel(tp); > out_release_inode: > @@ -427,7 +427,7 @@ xfs_inactive_symlink_rmt( > int done; > int error; > xfs_fsblock_t first_block; > - xfs_bmap_free_t free_list; > + struct xfs_defer_ops free_list; > int i; > xfs_mount_t *mp; > xfs_bmbt_irec_t mval[XFS_SYMLINK_MAPS]; > @@ -466,7 +466,7 @@ xfs_inactive_symlink_rmt( > * Find the block(s) so we can inval and unmap them. > */ > done = 0; > - xfs_bmap_init(&free_list, &first_block); > + xfs_defer_init(&free_list, &first_block); > nmaps = ARRAY_SIZE(mval); > error = xfs_bmapi_read(ip, 0, xfs_symlink_blocks(mp, size), > mval, &nmaps, 0); > @@ -496,7 +496,7 @@ xfs_inactive_symlink_rmt( > /* > * Commit the first transaction. This logs the EFI and the inode. > */ > - error = xfs_bmap_finish(&tp, &free_list, ip); > + error = xfs_defer_finish(&tp, &free_list, ip); > if (error) > goto error_bmap_cancel; > /* > @@ -526,7 +526,7 @@ xfs_inactive_symlink_rmt( > return 0; > > error_bmap_cancel: > - xfs_bmap_cancel(&free_list); > + xfs_defer_cancel(&free_list); > error_trans_cancel: > xfs_trans_cancel(tp); > error_unlock: > > _______________________________________________ > xfs mailing list > xfs@xxxxxxxxxxx > http://oss.sgi.com/mailman/listinfo/xfs -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html