All calls to functions using this parameter are now passing a false value. We can now remove the boolean and all affected code. Signed-off-by: Allison Henderson <allison.henderson@xxxxxxxxxx> --- fs/xfs/libxfs/xfs_attr.c | 178 ++++++---------------------------------- fs/xfs/libxfs/xfs_attr.h | 4 +- fs/xfs/libxfs/xfs_attr_leaf.c | 25 +----- fs/xfs/libxfs/xfs_attr_leaf.h | 6 +- fs/xfs/libxfs/xfs_attr_remote.c | 34 +------- fs/xfs/libxfs/xfs_attr_remote.h | 4 +- fs/xfs/xfs_trans_attr.c | 4 +- 7 files changed, 41 insertions(+), 214 deletions(-) diff --git a/fs/xfs/libxfs/xfs_attr.c b/fs/xfs/libxfs/xfs_attr.c index 4ddd86b..bd8fd32 100644 --- a/fs/xfs/libxfs/xfs_attr.c +++ b/fs/xfs/libxfs/xfs_attr.c @@ -51,16 +51,16 @@ STATIC int xfs_attr_shortform_addname(xfs_da_args_t *args); * Internal routines when attribute list is one block. */ STATIC int xfs_attr_leaf_get(xfs_da_args_t *args); -STATIC int xfs_attr_leaf_addname(xfs_da_args_t *args, bool roll_trans); -STATIC int xfs_attr_leaf_removename(xfs_da_args_t *args, bool roll_trans); +STATIC int xfs_attr_leaf_addname(xfs_da_args_t *args); +STATIC int xfs_attr_leaf_removename(xfs_da_args_t *args); STATIC int xfs_leaf_has_attr(xfs_da_args_t *args); /* * Internal routines when attribute list is more than one block. */ STATIC int xfs_attr_node_get(xfs_da_args_t *args); -STATIC int xfs_attr_node_addname(xfs_da_args_t *args, bool roll_trans); -STATIC int xfs_attr_node_removename(xfs_da_args_t *args, bool roll_trans); +STATIC int xfs_attr_node_addname(xfs_da_args_t *args); +STATIC int xfs_attr_node_removename(xfs_da_args_t *args); STATIC int xfs_attr_node_hasname(xfs_da_args_t *args); STATIC int xfs_attr_fillstate(xfs_da_state_t *state); STATIC int xfs_attr_refillstate(xfs_da_state_t *state); @@ -200,8 +200,7 @@ xfs_attr_calc_size( STATIC int xfs_attr_try_sf_addname( struct xfs_inode *dp, - struct xfs_da_args *args, - bool roll_trans) + struct xfs_da_args *args) { struct xfs_mount *mp = dp->i_mount; @@ -221,11 +220,6 @@ xfs_attr_try_sf_addname( if (mp->m_flags & XFS_MOUNT_WSYNC) xfs_trans_set_sync(args->trans); - if (roll_trans) { - error2 = xfs_trans_commit(args->trans); - args->trans = NULL; - } - return error ? error : error2; } @@ -236,8 +230,7 @@ int xfs_attr_set_args( struct xfs_da_args *args, struct xfs_buf **leaf_bp, - enum xfs_attr_state *state, - bool roll_trans) + enum xfs_attr_state *state) { struct xfs_inode *dp = args->dp; int error = 0; @@ -284,7 +277,7 @@ xfs_attr_set_args( /* * Try to add the attr to the attribute list in the inode. */ - error = xfs_attr_try_sf_addname(dp, args, roll_trans); + error = xfs_attr_try_sf_addname(dp, args); if (error != -ENOSPC) return error; @@ -306,23 +299,6 @@ xfs_attr_set_args( */ xfs_trans_bhold(args->trans, *leaf_bp); - if (roll_trans) { - error = xfs_defer_finish(&args->trans); - if (error) - return error; - - /* - * Commit the leaf transformation. We'll need another - * (linked) transaction to add the new attribute to the - * leaf. - */ - error = xfs_trans_roll_inode(&args->trans, dp); - if (error) - return error; - xfs_trans_bjoin(args->trans, *leaf_bp); - *leaf_bp = NULL; - } - *state = XFS_ATTR_STATE3; return -EAGAIN; state3: @@ -331,9 +307,9 @@ xfs_attr_set_args( } if (xfs_bmap_one_block(dp, XFS_ATTR_FORK)) - error = xfs_attr_leaf_addname(args, roll_trans); + error = xfs_attr_leaf_addname(args); else - error = xfs_attr_node_addname(args, roll_trans); + error = xfs_attr_node_addname(args); return error; } @@ -365,8 +341,7 @@ xfs_has_attr( */ int xfs_attr_remove_args( - struct xfs_da_args *args, - bool roll_trans) + struct xfs_da_args *args) { struct xfs_inode *dp = args->dp; int error; @@ -377,9 +352,9 @@ xfs_attr_remove_args( ASSERT(dp->i_afp->if_flags & XFS_IFINLINE); error = xfs_attr_shortform_remove(args); } else if (xfs_bmap_one_block(dp, XFS_ATTR_FORK)) { - error = xfs_attr_leaf_removename(args, roll_trans); + error = xfs_attr_leaf_removename(args); } else { - error = xfs_attr_node_removename(args, roll_trans); + error = xfs_attr_node_removename(args); } return error; @@ -720,8 +695,7 @@ xfs_attr_shortform_addname(xfs_da_args_t *args) */ STATIC int xfs_attr_leaf_addname( - struct xfs_da_args *args, - bool roll_trans) + struct xfs_da_args *args) { struct xfs_inode *dp; struct xfs_buf *bp; @@ -787,37 +761,13 @@ xfs_attr_leaf_addname( if (error) return error; - if (roll_trans) { - error = xfs_defer_finish(&args->trans); - if (error) - return error; - - /* - * Commit the current trans (including the inode) and - * start a new one. - */ - error = xfs_trans_roll_inode(&args->trans, dp); - if (error) - return error; - } - /* * Fob the whole rest of the problem off on the Btree code. */ - error = xfs_attr_node_addname(args, roll_trans); + error = xfs_attr_node_addname(args); return error; } - if (roll_trans) { - /* - * Commit the transaction that added the attr name so that - * later routines can manage their own transactions. - */ - error = xfs_trans_roll_inode(&args->trans, dp); - if (error) - return error; - } - /* * If there was an out-of-line value, allocate the blocks we * identified for its storage and copy the value. This is done @@ -825,7 +775,7 @@ xfs_attr_leaf_addname( * maximum size of a transaction and/or hit a deadlock. */ if (args->rmtblkno > 0) { - error = xfs_attr_rmtval_set(args, roll_trans); + error = xfs_attr_rmtval_set(args); if (error) return error; } @@ -841,7 +791,7 @@ xfs_attr_leaf_addname( * In a separate transaction, set the incomplete flag on the * "old" attr and clear the incomplete flag on the "new" attr. */ - error = xfs_attr3_leaf_flipflags(args, roll_trans); + error = xfs_attr3_leaf_flipflags(args); if (error) return error; @@ -855,7 +805,7 @@ xfs_attr_leaf_addname( args->rmtblkcnt = args->rmtblkcnt2; args->rmtvaluelen = args->rmtvaluelen2; if (args->rmtblkno) { - error = xfs_attr_rmtval_remove(args, roll_trans); + error = xfs_attr_rmtval_remove(args); if (error) return error; } @@ -879,25 +829,13 @@ xfs_attr_leaf_addname( /* bp is gone due to xfs_da_shrink_inode */ if (error) return error; - - if (roll_trans) { - error = xfs_defer_finish(&args->trans); - if (error) - return error; - } } - /* - * Commit the remove and start the next trans in series. - */ - if (roll_trans) - error = xfs_trans_roll_inode(&args->trans, dp); - } else if (args->rmtblkno > 0) { /* * Added a "remote" value, just clear the incomplete flag. */ - error = xfs_attr3_leaf_clearflag(args, roll_trans); + error = xfs_attr3_leaf_clearflag(args); } return error; } @@ -933,8 +871,7 @@ xfs_leaf_has_attr( */ STATIC int xfs_attr_leaf_removename( - struct xfs_da_args *args, - bool roll_trans) + struct xfs_da_args *args) { struct xfs_inode *dp; struct xfs_buf *bp; @@ -967,12 +904,6 @@ xfs_attr_leaf_removename( /* bp is gone due to xfs_da_shrink_inode */ if (error) return error; - - if (roll_trans) { - error = xfs_defer_finish(&args->trans); - if (error) - return error; - } } return 0; } @@ -1025,8 +956,7 @@ xfs_attr_leaf_get(xfs_da_args_t *args) */ STATIC int xfs_attr_node_addname( - struct xfs_da_args *args, - bool roll_trans) + struct xfs_da_args *args) { struct xfs_da_state *state; struct xfs_da_state_blk *blk; @@ -1095,20 +1025,6 @@ xfs_attr_node_addname( if (error) goto out; - if (roll_trans) { - error = xfs_defer_finish(&args->trans); - if (error) - goto out; - - /* - * Commit the node conversion and start the next - * trans in the chain. - */ - error = xfs_trans_roll_inode(&args->trans, dp); - if (error) - goto out; - } - goto restart; } @@ -1122,12 +1038,6 @@ xfs_attr_node_addname( if (error) goto out; - if (roll_trans) { - error = xfs_defer_finish(&args->trans); - if (error) - goto out; - } - } else { /* * Addition succeeded, update Btree hashvals. @@ -1143,23 +1053,13 @@ xfs_attr_node_addname( state = NULL; /* - * Commit the leaf addition or btree split and start the next - * trans in the chain. - */ - if (roll_trans) { - error = xfs_trans_roll_inode(&args->trans, dp); - if (error) - goto out; - } - - /* * If there was an out-of-line value, allocate the blocks we * identified for its storage and copy the value. This is done * after we create the attribute so that we don't overflow the * maximum size of a transaction and/or hit a deadlock. */ if (args->rmtblkno > 0) { - error = xfs_attr_rmtval_set(args, roll_trans); + error = xfs_attr_rmtval_set(args); if (error) return error; } @@ -1175,7 +1075,7 @@ xfs_attr_node_addname( * In a separate transaction, set the incomplete flag on the * "old" attr and clear the incomplete flag on the "new" attr. */ - error = xfs_attr3_leaf_flipflags(args, roll_trans); + error = xfs_attr3_leaf_flipflags(args); if (error) goto out; @@ -1189,7 +1089,7 @@ xfs_attr_node_addname( args->rmtblkcnt = args->rmtblkcnt2; args->rmtvaluelen = args->rmtvaluelen2; if (args->rmtblkno) { - error = xfs_attr_rmtval_remove(args, roll_trans); + error = xfs_attr_rmtval_remove(args); if (error) return error; } @@ -1223,11 +1123,6 @@ xfs_attr_node_addname( error = xfs_da3_join(state); if (error) goto out; - if (roll_trans) { - error = xfs_defer_finish(&args->trans); - if (error) - goto out; - } } /* @@ -1241,7 +1136,7 @@ xfs_attr_node_addname( /* * Added a "remote" value, just clear the incomplete flag. */ - error = xfs_attr3_leaf_clearflag(args, roll_trans); + error = xfs_attr3_leaf_clearflag(args); if (error) goto out; } @@ -1294,8 +1189,7 @@ xfs_attr_node_hasname( */ STATIC int xfs_attr_node_removename( - struct xfs_da_args *args, - bool roll_trans) + struct xfs_da_args *args) { struct xfs_da_state *state; struct xfs_da_state_blk *blk; @@ -1345,10 +1239,10 @@ xfs_attr_node_removename( * Mark the attribute as INCOMPLETE, then bunmapi() the * remote value. */ - error = xfs_attr3_leaf_setflag(args, roll_trans); + error = xfs_attr3_leaf_setflag(args); if (error) goto out; - error = xfs_attr_rmtval_remove(args, roll_trans); + error = xfs_attr_rmtval_remove(args); if (error) goto out; @@ -1376,19 +1270,6 @@ xfs_attr_node_removename( error = xfs_da3_join(state); if (error) goto out; - - if (roll_trans) { - error = xfs_defer_finish(&args->trans); - if (error) - goto out; - /* - * Commit the Btree join operation and start - * a new trans. - */ - error = xfs_trans_roll_inode(&args->trans, dp); - if (error) - goto out; - } } /* @@ -1412,11 +1293,6 @@ xfs_attr_node_removename( if (error) goto out; - if (roll_trans) { - error = xfs_defer_finish(&args->trans); - if (error) - goto out; - } } else xfs_trans_brelse(args->trans, bp); } diff --git a/fs/xfs/libxfs/xfs_attr.h b/fs/xfs/libxfs/xfs_attr.h index da95e69..f369895 100644 --- a/fs/xfs/libxfs/xfs_attr.h +++ b/fs/xfs/libxfs/xfs_attr.h @@ -181,11 +181,11 @@ int xfs_attr_set(struct xfs_inode *dp, const unsigned char *name, size_t namelen, unsigned char *value, int valuelen, int flags); int xfs_attr_set_args(struct xfs_da_args *args, struct xfs_buf **leaf_bp, - enum xfs_attr_state *state, bool roll_trans); + enum xfs_attr_state *state); int xfs_attr_remove(struct xfs_inode *dp, const unsigned char *name, size_t namelen, int flags); int xfs_has_attr(struct xfs_da_args *args); -int xfs_attr_remove_args(struct xfs_da_args *args, bool roll_trans); +int xfs_attr_remove_args(struct xfs_da_args *args); int xfs_attr_list(struct xfs_inode *dp, char *buffer, int bufsize, int flags, struct attrlist_cursor_kern *cursor); bool xfs_attr_namecheck(const void *name, size_t length); diff --git a/fs/xfs/libxfs/xfs_attr_leaf.c b/fs/xfs/libxfs/xfs_attr_leaf.c index e9f2f53..90dfa53 100644 --- a/fs/xfs/libxfs/xfs_attr_leaf.c +++ b/fs/xfs/libxfs/xfs_attr_leaf.c @@ -2670,8 +2670,7 @@ xfs_attr_leaf_newentsize( */ int xfs_attr3_leaf_clearflag( - struct xfs_da_args *args, - bool roll_trans) + struct xfs_da_args *args) { struct xfs_attr_leafblock *leaf; struct xfs_attr_leaf_entry *entry; @@ -2729,11 +2728,6 @@ xfs_attr3_leaf_clearflag( XFS_DA_LOGRANGE(leaf, name_rmt, sizeof(*name_rmt))); } - /* - * Commit the flag value change and start the next trans in series. - */ - if (roll_trans) - error = xfs_trans_roll_inode(&args->trans, args->dp); return error; } @@ -2742,8 +2736,7 @@ xfs_attr3_leaf_clearflag( */ int xfs_attr3_leaf_setflag( - struct xfs_da_args *args, - bool roll_trans) + struct xfs_da_args *args) { struct xfs_attr_leafblock *leaf; struct xfs_attr_leaf_entry *entry; @@ -2783,11 +2776,6 @@ xfs_attr3_leaf_setflag( XFS_DA_LOGRANGE(leaf, name_rmt, sizeof(*name_rmt))); } - /* - * Commit the flag value change and start the next trans in series. - */ - if (roll_trans) - error = xfs_trans_roll_inode(&args->trans, args->dp); return error; } @@ -2800,8 +2788,7 @@ xfs_attr3_leaf_setflag( */ int xfs_attr3_leaf_flipflags( - struct xfs_da_args *args, - bool roll_trans) + struct xfs_da_args *args) { struct xfs_attr_leafblock *leaf1; struct xfs_attr_leafblock *leaf2; @@ -2904,11 +2891,5 @@ xfs_attr3_leaf_flipflags( XFS_DA_LOGRANGE(leaf2, name_rmt, sizeof(*name_rmt))); } - /* - * Commit the flag value change and start the next trans in series. - */ - if (roll_trans) - error = xfs_trans_roll_inode(&args->trans, args->dp); - return error; } diff --git a/fs/xfs/libxfs/xfs_attr_leaf.h b/fs/xfs/libxfs/xfs_attr_leaf.h index 98dd169..d38c558 100644 --- a/fs/xfs/libxfs/xfs_attr_leaf.h +++ b/fs/xfs/libxfs/xfs_attr_leaf.h @@ -51,9 +51,9 @@ void xfs_attr_fork_remove(struct xfs_inode *ip, struct xfs_trans *tp); int xfs_attr3_leaf_to_node(struct xfs_da_args *args); int xfs_attr3_leaf_to_shortform(struct xfs_buf *bp, struct xfs_da_args *args, int forkoff); -int xfs_attr3_leaf_clearflag(struct xfs_da_args *args, bool roll_trans); -int xfs_attr3_leaf_setflag(struct xfs_da_args *args, bool roll_trans); -int xfs_attr3_leaf_flipflags(struct xfs_da_args *args, bool roll_trans); +int xfs_attr3_leaf_clearflag(struct xfs_da_args *args); +int xfs_attr3_leaf_setflag(struct xfs_da_args *args); +int xfs_attr3_leaf_flipflags(struct xfs_da_args *args); /* * Routines used for growing the Btree. diff --git a/fs/xfs/libxfs/xfs_attr_remote.c b/fs/xfs/libxfs/xfs_attr_remote.c index 18fbd22..9054f98 100644 --- a/fs/xfs/libxfs/xfs_attr_remote.c +++ b/fs/xfs/libxfs/xfs_attr_remote.c @@ -435,8 +435,7 @@ xfs_attr_rmtval_get( */ int xfs_attr_rmtval_set( - struct xfs_da_args *args, - bool roll_trans) + struct xfs_da_args *args) { struct xfs_inode *dp = args->dp; struct xfs_mount *mp = dp->i_mount; @@ -490,26 +489,11 @@ xfs_attr_rmtval_set( if (error) return error; - if (roll_trans) { - error = xfs_defer_finish(&args->trans); - if (error) - return error; - } - ASSERT(nmap == 1); ASSERT((map.br_startblock != DELAYSTARTBLOCK) && (map.br_startblock != HOLESTARTBLOCK)); lblkno += map.br_blockcount; blkcnt -= map.br_blockcount; - - if (roll_trans) { - /* - * Start the next trans in the chain. - */ - error = xfs_trans_roll_inode(&args->trans, dp); - if (error) - return error; - } } /* @@ -569,8 +553,7 @@ xfs_attr_rmtval_set( */ int xfs_attr_rmtval_remove( - struct xfs_da_args *args, - bool roll_trans) + struct xfs_da_args *args) { struct xfs_mount *mp = args->dp->i_mount; xfs_dablk_t lblkno; @@ -632,19 +615,6 @@ xfs_attr_rmtval_remove( XFS_BMAPI_ATTRFORK, 1, &done); if (error) return error; - - if (roll_trans) { - error = xfs_defer_finish(&args->trans); - if (error) - return error; - - /* - * Close out trans and start the next one in the chain. - */ - error = xfs_trans_roll_inode(&args->trans, args->dp); - if (error) - return error; - } } return 0; } diff --git a/fs/xfs/libxfs/xfs_attr_remote.h b/fs/xfs/libxfs/xfs_attr_remote.h index c7c073d..9d20b66 100644 --- a/fs/xfs/libxfs/xfs_attr_remote.h +++ b/fs/xfs/libxfs/xfs_attr_remote.h @@ -9,7 +9,7 @@ int xfs_attr3_rmt_blocks(struct xfs_mount *mp, int attrlen); int xfs_attr_rmtval_get(struct xfs_da_args *args); -int xfs_attr_rmtval_set(struct xfs_da_args *args, bool roll_trans); -int xfs_attr_rmtval_remove(struct xfs_da_args *args, bool roll_trans); +int xfs_attr_rmtval_set(struct xfs_da_args *args); +int xfs_attr_rmtval_remove(struct xfs_da_args *args); #endif /* __XFS_ATTR_REMOTE_H__ */ diff --git a/fs/xfs/xfs_trans_attr.c b/fs/xfs/xfs_trans_attr.c index a3339ea..4144ecf 100644 --- a/fs/xfs/xfs_trans_attr.c +++ b/fs/xfs/xfs_trans_attr.c @@ -70,11 +70,11 @@ xfs_trans_attr( case XFS_ATTR_OP_FLAGS_SET: args->op_flags |= XFS_DA_OP_ADDNAME; error = xfs_attr_set_args(args, leaf_bp, - (enum xfs_attr_state *)state, false); + (enum xfs_attr_state *)state); break; case XFS_ATTR_OP_FLAGS_REMOVE: ASSERT(XFS_IFORK_Q((args->dp))); - error = xfs_attr_remove_args(args, false); + error = xfs_attr_remove_args(args); break; default: error = -EFSCORRUPTED; -- 2.7.4