Linux Audio

Check our new training course

Loading...
Note: File does not exist in v3.1.
 1/* SPDX-License-Identifier: GPL-2.0-or-later
 2 *
 3 * Copyright (C) 2022 Oracle.  All Rights Reserved.
 4 * Author: Allison Henderson <allison.henderson@oracle.com>
 5 */
 6#ifndef	__XFS_ATTR_ITEM_H__
 7#define	__XFS_ATTR_ITEM_H__
 8
 9/* kernel only ATTRI/ATTRD definitions */
10
11struct xfs_mount;
12struct kmem_zone;
13
14struct xfs_attri_log_nameval {
15	struct xfs_log_iovec	name;
16	struct xfs_log_iovec	value;
17	refcount_t		refcount;
18
19	/* name and value follow the end of this struct */
20};
21
22/*
23 * This is the "attr intention" log item.  It is used to log the fact that some
24 * extended attribute operations need to be processed.  An operation is
25 * currently either a set or remove.  Set or remove operations are described by
26 * the xfs_attr_intent which may be logged to this intent.
27 *
28 * During a normal attr operation, name and value point to the name and value
29 * fields of the caller's xfs_da_args structure.  During a recovery, the name
30 * and value buffers are copied from the log, and stored in a trailing buffer
31 * attached to the xfs_attr_intent until they are committed.  They are freed
32 * when the xfs_attr_intent itself is freed when the work is done.
33 */
34struct xfs_attri_log_item {
35	struct xfs_log_item		attri_item;
36	atomic_t			attri_refcount;
37	struct xfs_attri_log_nameval	*attri_nameval;
38	struct xfs_attri_log_format	attri_format;
39};
40
41/*
42 * This is the "attr done" log item.  It is used to log the fact that some attrs
43 * earlier mentioned in an attri item have been freed.
44 */
45struct xfs_attrd_log_item {
46	struct xfs_log_item		attrd_item;
47	struct xfs_attri_log_item	*attrd_attrip;
48	struct xfs_attrd_log_format	attrd_format;
49};
50
51extern struct kmem_cache	*xfs_attri_cache;
52extern struct kmem_cache	*xfs_attrd_cache;
53
54#endif	/* __XFS_ATTR_ITEM_H__ */