xfs: refactor xfs_is_using_logged_xattrs checks in attr item recovery
Move this feature check down to the per-op checks so that we can ensure that we never see parent pointer attr items on non-pptr filesystems, and that logged xattrs are turned on for non-pptr attr items. Signed-off-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
parent
f041455eb5
commit
a918f5f2cd
@ -480,9 +480,6 @@ xfs_attri_validate(
|
||||
{
|
||||
unsigned int op = xfs_attr_log_item_op(attrp);
|
||||
|
||||
if (!xfs_is_using_logged_xattrs(mp))
|
||||
return false;
|
||||
|
||||
if (attrp->__pad != 0)
|
||||
return false;
|
||||
|
||||
@ -499,12 +496,16 @@ xfs_attri_validate(
|
||||
switch (op) {
|
||||
case XFS_ATTRI_OP_FLAGS_SET:
|
||||
case XFS_ATTRI_OP_FLAGS_REPLACE:
|
||||
if (!xfs_is_using_logged_xattrs(mp))
|
||||
return false;
|
||||
if (attrp->alfi_value_len > XATTR_SIZE_MAX)
|
||||
return false;
|
||||
if (!xfs_attri_validate_namelen(attrp->alfi_name_len))
|
||||
return false;
|
||||
break;
|
||||
case XFS_ATTRI_OP_FLAGS_REMOVE:
|
||||
if (!xfs_is_using_logged_xattrs(mp))
|
||||
return false;
|
||||
if (attrp->alfi_value_len != 0)
|
||||
return false;
|
||||
if (!xfs_attri_validate_namelen(attrp->alfi_name_len))
|
||||
|
Loading…
Reference in New Issue
Block a user