xfs
[Top] [All Lists]

[PATCH] xfs: tidy up xfs_attr_shortform_list

To: xfs@xxxxxxxxxxx
Subject: [PATCH] xfs: tidy up xfs_attr_shortform_list
From: Mateusz Guzik <mguzik@xxxxxxxxxx>
Date: Wed, 2 Mar 2016 16:28:31 +0100
Cc: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Delivered-to: xfs@xxxxxxxxxxx
Remove an unnecessary i == nsbuf test and replace a common label for error
handling after sbuf is allocated.

Signed-off-by: Mateusz Guzik <mguzik@xxxxxxxxxx>
---
 fs/xfs/xfs_attr_list.c | 19 +++++++------------
 1 file changed, 7 insertions(+), 12 deletions(-)

diff --git a/fs/xfs/xfs_attr_list.c b/fs/xfs/xfs_attr_list.c
index 4fa1482..7129fbc 100644
--- a/fs/xfs/xfs_attr_list.c
+++ b/fs/xfs/xfs_attr_list.c
@@ -74,7 +74,7 @@ xfs_attr_shortform_list(xfs_attr_list_context_t *context)
        xfs_attr_sf_entry_t *sfe;
        xfs_inode_t *dp;
        int sbsize, nsbuf, count, i;
-       int error;
+       int error = 0;
 
        ASSERT(context != NULL);
        dp = context->dp;
@@ -146,8 +146,8 @@ xfs_attr_shortform_list(xfs_attr_list_context_t *context)
                        XFS_CORRUPTION_ERROR("xfs_attr_shortform_list",
                                             XFS_ERRLEVEL_LOW,
                                             context->dp->i_mount, sfe);
-                       kmem_free(sbuf);
-                       return -EFSCORRUPTED;
+                       error = -EFSCORRUPTED;
+                       goto out;
                }
 
                sbp->entno = i;
@@ -183,10 +183,6 @@ xfs_attr_shortform_list(xfs_attr_list_context_t *context)
                        break;
                }
        }
-       if (i == nsbuf) {
-               kmem_free(sbuf);
-               return 0;
-       }
 
        /*
         * Loop putting entries into the user buffer.
@@ -202,17 +198,16 @@ xfs_attr_shortform_list(xfs_attr_list_context_t *context)
                                        sbp->namelen,
                                        sbp->valuelen,
                                        &sbp->name[sbp->namelen]);
-               if (error) {
-                       kmem_free(sbuf);
-                       return error;
-               }
+               if (error)
+                       break;
                if (context->seen_enough)
                        break;
                cursor->offset++;
        }
 
+out:
        kmem_free(sbuf);
-       return 0;
+       return error;
 }
 
 STATIC int
-- 
1.8.3.1

<Prev in Thread] Current Thread [Next in Thread>