123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- /* SPDX-License-Identifier: GPL-2.0-or-later
- *
- * Copyright (C) 2022 Oracle. All Rights Reserved.
- * Author: Allison Henderson <[email protected]>
- */
- #ifndef __XFS_ATTR_ITEM_H__
- #define __XFS_ATTR_ITEM_H__
- /* kernel only ATTRI/ATTRD definitions */
- struct xfs_mount;
- struct kmem_zone;
- struct xfs_attri_log_nameval {
- struct xfs_log_iovec name;
- struct xfs_log_iovec value;
- refcount_t refcount;
- /* name and value follow the end of this struct */
- };
- /*
- * This is the "attr intention" log item. It is used to log the fact that some
- * extended attribute operations need to be processed. An operation is
- * currently either a set or remove. Set or remove operations are described by
- * the xfs_attr_intent which may be logged to this intent.
- *
- * During a normal attr operation, name and value point to the name and value
- * fields of the caller's xfs_da_args structure. During a recovery, the name
- * and value buffers are copied from the log, and stored in a trailing buffer
- * attached to the xfs_attr_intent until they are committed. They are freed
- * when the xfs_attr_intent itself is freed when the work is done.
- */
- struct xfs_attri_log_item {
- struct xfs_log_item attri_item;
- atomic_t attri_refcount;
- struct xfs_attri_log_nameval *attri_nameval;
- struct xfs_attri_log_format attri_format;
- };
- /*
- * This is the "attr done" log item. It is used to log the fact that some attrs
- * earlier mentioned in an attri item have been freed.
- */
- struct xfs_attrd_log_item {
- struct xfs_log_item attrd_item;
- struct xfs_attri_log_item *attrd_attrip;
- struct xfs_attrd_log_format attrd_format;
- };
- extern struct kmem_cache *xfs_attri_cache;
- extern struct kmem_cache *xfs_attrd_cache;
- #endif /* __XFS_ATTR_ITEM_H__ */
|