On Thu, Mar 25, 2021 at 05:32:58PM -0700, Allison Henderson wrote: > Originally we added this patch to help modularize the attr code in > preparation for delayed attributes and the state machine it requires. > However, later reviews found that this slightly alters the transaction > handling as the helper function is ambiguous as to whether the > transaction is diry or clean. This may cause a dirty transaction to be > included in the next roll, where previously it had not. To preserve the > existing code flow, we reverse apply this commit. > > Signed-off-by: Allison Henderson <allison.henderson@xxxxxxxxxx> > --- Reviewed-by: Brian Foster <bfoster@xxxxxxxxxx> > fs/xfs/libxfs/xfs_attr.c | 28 +++++++++------------------- > 1 file changed, 9 insertions(+), 19 deletions(-) > > diff --git a/fs/xfs/libxfs/xfs_attr.c b/fs/xfs/libxfs/xfs_attr.c > index 472b303..b42144e 100644 > --- a/fs/xfs/libxfs/xfs_attr.c > +++ b/fs/xfs/libxfs/xfs_attr.c > @@ -1202,24 +1202,6 @@ int xfs_attr_node_removename_setup( > return 0; > } > > -STATIC int > -xfs_attr_node_remove_rmt( > - struct xfs_da_args *args, > - struct xfs_da_state *state) > -{ > - int error = 0; > - > - error = xfs_attr_rmtval_remove(args); > - if (error) > - return error; > - > - /* > - * Refill the state structure with buffers, the prior calls released our > - * buffers. > - */ > - return xfs_attr_refillstate(state); > -} > - > /* > * Remove a name from a B-tree attribute list. > * > @@ -1248,7 +1230,15 @@ xfs_attr_node_removename( > * overflow the maximum size of a transaction and/or hit a deadlock. > */ > if (args->rmtblkno > 0) { > - error = xfs_attr_node_remove_rmt(args, state); > + error = xfs_attr_rmtval_remove(args); > + if (error) > + goto out; > + > + /* > + * Refill the state structure with buffers, the prior calls > + * released our buffers. > + */ > + error = xfs_attr_refillstate(state); > if (error) > goto out; > } > -- > 2.7.4 >