mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-09 14:43:16 +00:00
xfs: remove the ATTR_INCOMPLETE flag
Replace the ATTR_INCOMPLETE flag with a new boolean field in struct xfs_attr_list_context. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com> Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
This commit is contained in:
parent
4d542e4c1e
commit
5e81357435
@ -36,11 +36,10 @@ struct xfs_attr_list_context;
|
||||
#define ATTR_KERNOTIME 0x1000 /* [kernel] don't update inode timestamps */
|
||||
#define ATTR_KERNOVAL 0x2000 /* [kernel] get attr size only, not value */
|
||||
|
||||
#define ATTR_INCOMPLETE 0x4000 /* [kernel] return INCOMPLETE attr keys */
|
||||
#define ATTR_ALLOC 0x8000 /* [kernel] allocate xattr buffer on demand */
|
||||
|
||||
#define ATTR_KERNEL_FLAGS \
|
||||
(ATTR_KERNOTIME | ATTR_KERNOVAL | ATTR_INCOMPLETE | ATTR_ALLOC)
|
||||
(ATTR_KERNOTIME | ATTR_KERNOVAL | ATTR_ALLOC)
|
||||
|
||||
#define XFS_ATTR_FLAGS \
|
||||
{ ATTR_DONTFOLLOW, "DONTFOLLOW" }, \
|
||||
@ -51,7 +50,6 @@ struct xfs_attr_list_context;
|
||||
{ ATTR_REPLACE, "REPLACE" }, \
|
||||
{ ATTR_KERNOTIME, "KERNOTIME" }, \
|
||||
{ ATTR_KERNOVAL, "KERNOVAL" }, \
|
||||
{ ATTR_INCOMPLETE, "INCOMPLETE" }, \
|
||||
{ ATTR_ALLOC, "ALLOC" }
|
||||
|
||||
/*
|
||||
@ -123,6 +121,7 @@ typedef struct xfs_attr_list_context {
|
||||
* error values to the xfs_attr_list caller.
|
||||
*/
|
||||
int seen_enough;
|
||||
bool allow_incomplete;
|
||||
|
||||
ssize_t count; /* num used entries */
|
||||
int dupcnt; /* count dup hashvals seen */
|
||||
|
@ -497,7 +497,7 @@ xchk_xattr(
|
||||
sx.context.resynch = 1;
|
||||
sx.context.put_listent = xchk_xattr_listent;
|
||||
sx.context.tp = sc->tp;
|
||||
sx.context.flags = ATTR_INCOMPLETE;
|
||||
sx.context.allow_incomplete = true;
|
||||
sx.sc = sc;
|
||||
|
||||
/*
|
||||
|
@ -452,8 +452,8 @@ xfs_attr3_leaf_list_int(
|
||||
}
|
||||
|
||||
if ((entry->flags & XFS_ATTR_INCOMPLETE) &&
|
||||
!(context->flags & ATTR_INCOMPLETE))
|
||||
continue; /* skip incomplete entries */
|
||||
!context->allow_incomplete)
|
||||
continue;
|
||||
|
||||
if (entry->flags & XFS_ATTR_LOCAL) {
|
||||
xfs_attr_leaf_name_local_t *name_loc;
|
||||
@ -632,10 +632,6 @@ xfs_attr_list(
|
||||
(cursor->hashval || cursor->blkno || cursor->offset))
|
||||
return -EINVAL;
|
||||
|
||||
/* Only internal consumers can retrieve incomplete attrs. */
|
||||
if (flags & ATTR_INCOMPLETE)
|
||||
return -EINVAL;
|
||||
|
||||
/*
|
||||
* Check for a properly aligned buffer.
|
||||
*/
|
||||
|
Loading…
x
Reference in New Issue
Block a user