linux/fs/xfs/xfs_buf_item.h

// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright (c) 2000-2001,2005 Silicon Graphics, Inc.
 * All Rights Reserved.
 */
#ifndef	__XFS_BUF_ITEM_H__
#define __XFS_BUF_ITEM_H__

/* kernel only definitions */

struct xfs_buf;
struct xfs_mount;

/* buf log item flags */
#define XFS_BLI_HOLD
#define XFS_BLI_DIRTY
#define XFS_BLI_STALE
#define XFS_BLI_LOGGED
#define XFS_BLI_INODE_ALLOC_BUF
#define XFS_BLI_STALE_INODE
#define XFS_BLI_INODE_BUF
#define XFS_BLI_ORDERED

#define XFS_BLI_FLAGS

/*
 * This is the in core log item structure used to track information
 * needed to log buffers.  It tracks how many times the lock has been
 * locked, and which 128 byte chunks of the buffer are dirty.
 */
struct xfs_buf_log_item {};

int	xfs_buf_item_init(struct xfs_buf *, struct xfs_mount *);
void	xfs_buf_item_done(struct xfs_buf *bp);
void	xfs_buf_item_relse(struct xfs_buf *);
bool	xfs_buf_item_put(struct xfs_buf_log_item *);
void	xfs_buf_item_log(struct xfs_buf_log_item *, uint, uint);
bool	xfs_buf_item_dirty_format(struct xfs_buf_log_item *);
void	xfs_buf_inode_iodone(struct xfs_buf *);
void	xfs_buf_inode_io_fail(struct xfs_buf *bp);
#ifdef CONFIG_XFS_QUOTA
void	xfs_buf_dquot_iodone(struct xfs_buf *);
void	xfs_buf_dquot_io_fail(struct xfs_buf *bp);
#else
static inline void xfs_buf_dquot_iodone(struct xfs_buf *bp)
{
}
static inline void xfs_buf_dquot_io_fail(struct xfs_buf *bp)
{
}
#endif /* CONFIG_XFS_QUOTA */
void	xfs_buf_iodone(struct xfs_buf *);
bool	xfs_buf_log_check_iovec(struct xfs_log_iovec *iovec);

extern struct kmem_cache	*xfs_buf_item_cache;

#endif	/* __XFS_BUF_ITEM_H__ */