Re: [PATCH v7 17/19] xfs: Add helper function xfs_attr_leaf_mark_incomplete

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Feb 23, 2020 at 4:07 AM Allison Collins
<allison.henderson@xxxxxxxxxx> wrote:
>
> This patch helps to simplify xfs_attr_node_removename by modularizing the code
> around the transactions into helper functions.  This will make the function easier
> to follow when we introduce delayed attributes.
>
> Signed-off-by: Allison Collins <allison.henderson@xxxxxxxxxx>

Found no surprises here, you may add:

Reviewed-by: Amir Goldstein <amir73il@xxxxxxxxx>

Thanks,
Amir.

> ---
>  fs/xfs/libxfs/xfs_attr.c | 45 +++++++++++++++++++++++++++++++--------------
>  1 file changed, 31 insertions(+), 14 deletions(-)
>
> diff --git a/fs/xfs/libxfs/xfs_attr.c b/fs/xfs/libxfs/xfs_attr.c
> index dd935ff..b9728d1 100644
> --- a/fs/xfs/libxfs/xfs_attr.c
> +++ b/fs/xfs/libxfs/xfs_attr.c
> @@ -1416,6 +1416,36 @@ xfs_attr_node_shrink(
>  }
>
>  /*
> + * Mark an attribute entry INCOMPLETE and save pointers to the relevant buffers
> + * for later deletion of the entry.
> + */
> +STATIC int
> +xfs_attr_leaf_mark_incomplete(
> +       struct xfs_da_args      *args,
> +       struct xfs_da_state     *state)
> +{
> +       int error;
> +
> +       /*
> +        * Fill in disk block numbers in the state structure
> +        * so that we can get the buffers back after we commit
> +        * several transactions in the following calls.
> +        */
> +       error = xfs_attr_fillstate(state);
> +       if (error)
> +               return error;
> +
> +       /*
> +        * Mark the attribute as INCOMPLETE
> +        */
> +       error = xfs_attr3_leaf_setflag(args);
> +       if (error)
> +               return error;
> +
> +       return 0;
> +}
> +
> +/*
>   * Remove a name from a B-tree attribute list.
>   *
>   * This will involve walking down the Btree, and may involve joining
> @@ -1473,20 +1503,7 @@ xfs_attr_node_removename(
>         args->dac.da_state = state;
>
>         if (args->rmtblkno > 0) {
> -               /*
> -                * Fill in disk block numbers in the state structure
> -                * so that we can get the buffers back after we commit
> -                * several transactions in the following calls.
> -                */
> -               error = xfs_attr_fillstate(state);
> -               if (error)
> -                       goto out;
> -
> -               /*
> -                * Mark the attribute as INCOMPLETE, then bunmapi() the
> -                * remote value.
> -                */
> -               error = xfs_attr3_leaf_setflag(args);
> +               error = xfs_attr_leaf_mark_incomplete(args, state);
>                 if (error)
>                         goto out;
>
> --
> 2.7.4
>



[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux