|
@@ -74,7 +74,6 @@ xfs_attr_shortform_list(xfs_attr_list_context_t *context)
|
|
xfs_attr_sf_entry_t *sfe;
|
|
xfs_attr_sf_entry_t *sfe;
|
|
xfs_inode_t *dp;
|
|
xfs_inode_t *dp;
|
|
int sbsize, nsbuf, count, i;
|
|
int sbsize, nsbuf, count, i;
|
|
- int error;
|
|
|
|
|
|
|
|
ASSERT(context != NULL);
|
|
ASSERT(context != NULL);
|
|
dp = context->dp;
|
|
dp = context->dp;
|
|
@@ -102,13 +101,11 @@ xfs_attr_shortform_list(xfs_attr_list_context_t *context)
|
|
(XFS_ISRESET_CURSOR(cursor) &&
|
|
(XFS_ISRESET_CURSOR(cursor) &&
|
|
(dp->i_afp->if_bytes + sf->hdr.count * 16) < context->bufsize)) {
|
|
(dp->i_afp->if_bytes + sf->hdr.count * 16) < context->bufsize)) {
|
|
for (i = 0, sfe = &sf->list[0]; i < sf->hdr.count; i++) {
|
|
for (i = 0, sfe = &sf->list[0]; i < sf->hdr.count; i++) {
|
|
- error = context->put_listent(context,
|
|
|
|
- sfe->flags,
|
|
|
|
- sfe->nameval,
|
|
|
|
- (int)sfe->namelen,
|
|
|
|
- (int)sfe->valuelen);
|
|
|
|
- if (error)
|
|
|
|
- return error;
|
|
|
|
|
|
+ context->put_listent(context,
|
|
|
|
+ sfe->flags,
|
|
|
|
+ sfe->nameval,
|
|
|
|
+ (int)sfe->namelen,
|
|
|
|
+ (int)sfe->valuelen);
|
|
/*
|
|
/*
|
|
* Either search callback finished early or
|
|
* Either search callback finished early or
|
|
* didn't fit it all in the buffer after all.
|
|
* didn't fit it all in the buffer after all.
|
|
@@ -193,15 +190,11 @@ xfs_attr_shortform_list(xfs_attr_list_context_t *context)
|
|
cursor->hashval = sbp->hash;
|
|
cursor->hashval = sbp->hash;
|
|
cursor->offset = 0;
|
|
cursor->offset = 0;
|
|
}
|
|
}
|
|
- error = context->put_listent(context,
|
|
|
|
- sbp->flags,
|
|
|
|
- sbp->name,
|
|
|
|
- sbp->namelen,
|
|
|
|
- sbp->valuelen);
|
|
|
|
- if (error) {
|
|
|
|
- kmem_free(sbuf);
|
|
|
|
- return error;
|
|
|
|
- }
|
|
|
|
|
|
+ context->put_listent(context,
|
|
|
|
+ sbp->flags,
|
|
|
|
+ sbp->name,
|
|
|
|
+ sbp->namelen,
|
|
|
|
+ sbp->valuelen);
|
|
if (context->seen_enough)
|
|
if (context->seen_enough)
|
|
break;
|
|
break;
|
|
cursor->offset++;
|
|
cursor->offset++;
|
|
@@ -335,11 +328,7 @@ xfs_attr_node_list(xfs_attr_list_context_t *context)
|
|
*/
|
|
*/
|
|
for (;;) {
|
|
for (;;) {
|
|
leaf = bp->b_addr;
|
|
leaf = bp->b_addr;
|
|
- error = xfs_attr3_leaf_list_int(bp, context);
|
|
|
|
- if (error) {
|
|
|
|
- xfs_trans_brelse(NULL, bp);
|
|
|
|
- return error;
|
|
|
|
- }
|
|
|
|
|
|
+ xfs_attr3_leaf_list_int(bp, context);
|
|
xfs_attr3_leaf_hdr_from_disk(mp->m_attr_geo, &leafhdr, leaf);
|
|
xfs_attr3_leaf_hdr_from_disk(mp->m_attr_geo, &leafhdr, leaf);
|
|
if (context->seen_enough || leafhdr.forw == 0)
|
|
if (context->seen_enough || leafhdr.forw == 0)
|
|
break;
|
|
break;
|
|
@@ -356,7 +345,7 @@ xfs_attr_node_list(xfs_attr_list_context_t *context)
|
|
/*
|
|
/*
|
|
* Copy out attribute list entries for attr_list(), for leaf attribute lists.
|
|
* Copy out attribute list entries for attr_list(), for leaf attribute lists.
|
|
*/
|
|
*/
|
|
-int
|
|
|
|
|
|
+void
|
|
xfs_attr3_leaf_list_int(
|
|
xfs_attr3_leaf_list_int(
|
|
struct xfs_buf *bp,
|
|
struct xfs_buf *bp,
|
|
struct xfs_attr_list_context *context)
|
|
struct xfs_attr_list_context *context)
|
|
@@ -366,7 +355,6 @@ xfs_attr3_leaf_list_int(
|
|
struct xfs_attr3_icleaf_hdr ichdr;
|
|
struct xfs_attr3_icleaf_hdr ichdr;
|
|
struct xfs_attr_leaf_entry *entries;
|
|
struct xfs_attr_leaf_entry *entries;
|
|
struct xfs_attr_leaf_entry *entry;
|
|
struct xfs_attr_leaf_entry *entry;
|
|
- int retval;
|
|
|
|
int i;
|
|
int i;
|
|
struct xfs_mount *mp = context->dp->i_mount;
|
|
struct xfs_mount *mp = context->dp->i_mount;
|
|
|
|
|
|
@@ -399,7 +387,7 @@ xfs_attr3_leaf_list_int(
|
|
}
|
|
}
|
|
if (i == ichdr.count) {
|
|
if (i == ichdr.count) {
|
|
trace_xfs_attr_list_notfound(context);
|
|
trace_xfs_attr_list_notfound(context);
|
|
- return 0;
|
|
|
|
|
|
+ return;
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
entry = &entries[0];
|
|
entry = &entries[0];
|
|
@@ -410,7 +398,6 @@ xfs_attr3_leaf_list_int(
|
|
/*
|
|
/*
|
|
* We have found our place, start copying out the new attributes.
|
|
* We have found our place, start copying out the new attributes.
|
|
*/
|
|
*/
|
|
- retval = 0;
|
|
|
|
for (; i < ichdr.count; entry++, i++) {
|
|
for (; i < ichdr.count; entry++, i++) {
|
|
char *name;
|
|
char *name;
|
|
int namelen, valuelen;
|
|
int namelen, valuelen;
|
|
@@ -439,16 +426,14 @@ xfs_attr3_leaf_list_int(
|
|
valuelen = be32_to_cpu(name_rmt->valuelen);
|
|
valuelen = be32_to_cpu(name_rmt->valuelen);
|
|
}
|
|
}
|
|
|
|
|
|
- retval = context->put_listent(context, entry->flags,
|
|
|
|
|
|
+ context->put_listent(context, entry->flags,
|
|
name, namelen, valuelen);
|
|
name, namelen, valuelen);
|
|
- if (retval)
|
|
|
|
- break;
|
|
|
|
if (context->seen_enough)
|
|
if (context->seen_enough)
|
|
break;
|
|
break;
|
|
cursor->offset++;
|
|
cursor->offset++;
|
|
}
|
|
}
|
|
trace_xfs_attr_list_leaf_end(context);
|
|
trace_xfs_attr_list_leaf_end(context);
|
|
- return retval;
|
|
|
|
|
|
+ return;
|
|
}
|
|
}
|
|
|
|
|
|
/*
|
|
/*
|
|
@@ -467,9 +452,9 @@ xfs_attr_leaf_list(xfs_attr_list_context_t *context)
|
|
if (error)
|
|
if (error)
|
|
return error;
|
|
return error;
|
|
|
|
|
|
- error = xfs_attr3_leaf_list_int(bp, context);
|
|
|
|
|
|
+ xfs_attr3_leaf_list_int(bp, context);
|
|
xfs_trans_brelse(NULL, bp);
|
|
xfs_trans_brelse(NULL, bp);
|
|
- return error;
|
|
|
|
|
|
+ return 0;
|
|
}
|
|
}
|
|
|
|
|
|
int
|
|
int
|
|
@@ -513,7 +498,7 @@ xfs_attr_list_int(
|
|
* Take care to check values and protect against them changing later,
|
|
* Take care to check values and protect against them changing later,
|
|
* we may be reading them directly out of a user buffer.
|
|
* we may be reading them directly out of a user buffer.
|
|
*/
|
|
*/
|
|
-STATIC int
|
|
|
|
|
|
+STATIC void
|
|
xfs_attr_put_listent(
|
|
xfs_attr_put_listent(
|
|
xfs_attr_list_context_t *context,
|
|
xfs_attr_list_context_t *context,
|
|
int flags,
|
|
int flags,
|
|
@@ -536,10 +521,10 @@ xfs_attr_put_listent(
|
|
*/
|
|
*/
|
|
if (((context->flags & ATTR_SECURE) == 0) !=
|
|
if (((context->flags & ATTR_SECURE) == 0) !=
|
|
((flags & XFS_ATTR_SECURE) == 0))
|
|
((flags & XFS_ATTR_SECURE) == 0))
|
|
- return 0;
|
|
|
|
|
|
+ return;
|
|
if (((context->flags & ATTR_ROOT) == 0) !=
|
|
if (((context->flags & ATTR_ROOT) == 0) !=
|
|
((flags & XFS_ATTR_ROOT) == 0))
|
|
((flags & XFS_ATTR_ROOT) == 0))
|
|
- return 0;
|
|
|
|
|
|
+ return;
|
|
|
|
|
|
arraytop = sizeof(*alist) +
|
|
arraytop = sizeof(*alist) +
|
|
context->count * sizeof(alist->al_offset[0]);
|
|
context->count * sizeof(alist->al_offset[0]);
|
|
@@ -548,7 +533,7 @@ xfs_attr_put_listent(
|
|
trace_xfs_attr_list_full(context);
|
|
trace_xfs_attr_list_full(context);
|
|
alist->al_more = 1;
|
|
alist->al_more = 1;
|
|
context->seen_enough = 1;
|
|
context->seen_enough = 1;
|
|
- return 0;
|
|
|
|
|
|
+ return;
|
|
}
|
|
}
|
|
|
|
|
|
aep = (attrlist_ent_t *)&context->alist[context->firstu];
|
|
aep = (attrlist_ent_t *)&context->alist[context->firstu];
|
|
@@ -558,7 +543,7 @@ xfs_attr_put_listent(
|
|
alist->al_offset[context->count++] = context->firstu;
|
|
alist->al_offset[context->count++] = context->firstu;
|
|
alist->al_count = context->count;
|
|
alist->al_count = context->count;
|
|
trace_xfs_attr_list_add(context);
|
|
trace_xfs_attr_list_add(context);
|
|
- return 0;
|
|
|
|
|
|
+ return;
|
|
}
|
|
}
|
|
|
|
|
|
/*
|
|
/*
|