| To: | xfs@xxxxxxxxxxx |
|---|---|
| Subject: | [PATCH 4/4] xfs: collapse cases in xfs_attr3_leaf_list_int |
| From: | Eric Sandeen <sandeen@xxxxxxxxxxx> |
| Date: | Fri, 11 Mar 2016 16:12:37 -0600 |
| Delivered-to: | xfs@xxxxxxxxxxx |
| In-reply-to: | <56E3425E.40509@xxxxxxxxxx> |
| References: | <56E3425E.40509@xxxxxxxxxx> |
| User-agent: | Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 |
Consolidate the 2 calls to ->put_listent in
xfs_attr3_leaf_list_int(), by setting up name, namelen, and
valuelen for the local vs remote cases, then call ->put_listent
and do the error handling all in one spot.
Signed-off-by: Eric Sandeen <sandeen@xxxxxxxxxx>
---
fs/xfs/xfs_attr_list.c | 42 ++++++++++++++++++++----------------------
1 files changed, 20 insertions(+), 22 deletions(-)
diff --git a/fs/xfs/xfs_attr_list.c b/fs/xfs/xfs_attr_list.c
index 900164c..007be5c 100644
--- a/fs/xfs/xfs_attr_list.c
+++ b/fs/xfs/xfs_attr_list.c
@@ -410,6 +410,9 @@ xfs_attr3_leaf_list_int(
*/
retval = 0;
for (; i < ichdr.count; entry++, i++) {
+ char *name;
+ int namelen, valuelen;
+
if (be32_to_cpu(entry->hashval) != cursor->hashval) {
cursor->hashval = be32_to_cpu(entry->hashval);
cursor->offset = 0;
@@ -419,30 +422,25 @@ xfs_attr3_leaf_list_int(
continue; /* skip incomplete entries */
if (entry->flags & XFS_ATTR_LOCAL) {
- xfs_attr_leaf_name_local_t *name_loc =
- xfs_attr3_leaf_name_local(leaf, i);
-
- retval = context->put_listent(context,
- entry->flags,
- name_loc->nameval,
- (int)name_loc->namelen,
-
be16_to_cpu(name_loc->valuelen));
- if (retval)
- return retval;
+ xfs_attr_leaf_name_local_t *name_loc;
+
+ name_loc = xfs_attr3_leaf_name_local(leaf, i);
+ name = name_loc->nameval;
+ namelen = name_loc->namelen;
+ valuelen = be16_to_cpu(name_loc->valuelen);
} else {
- xfs_attr_leaf_name_remote_t *name_rmt =
- xfs_attr3_leaf_name_remote(leaf, i);
-
- int valuelen = be32_to_cpu(name_rmt->valuelen);
-
- retval = context->put_listent(context,
- entry->flags,
- name_rmt->name,
- (int)name_rmt->namelen,
- valuelen);
- if (retval)
- return retval;
+ xfs_attr_leaf_name_remote_t *name_rmt;
+
+ name_rmt = xfs_attr3_leaf_name_remote(leaf, i);
+ name = name_rmt->name;
+ namelen = name_rmt->namelen;
+ valuelen = be32_to_cpu(name_rmt->valuelen);
}
+
+ retval = context->put_listent(context, entry->flags,
+ name, namelen, valuelen);
+ if (retval)
+ return retval;
if (context->seen_enough)
break;
cursor->offset++;
--
1.7.1
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | [PATCH 3/4] xfs: remove put_value from attr ->put_listent context, Eric Sandeen |
|---|---|
| Next by Date: | Re: [PATCH v18 00/22] Richacls (Core and Ext4), Jeremy Allison |
| Previous by Thread: | Re: [PATCH 3/4] xfs: remove put_value from attr ->put_listent context, Christoph Hellwig |
| Next by Thread: | Re: [PATCH 4/4] xfs: collapse cases in xfs_attr3_leaf_list_int, Christoph Hellwig |
| Indexes: | [Date] [Thread] [Top] [All Lists] |