cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

xfs_attr_item.h (1745B)


      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__ */