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 2/23/20 6:47 AM, Amir Goldstein wrote:
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.

Alrighty then.  Thank you!

Allison


---
  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