xfs: use a list_head for iclog callbacks
Replace the hand grown linked list handling and cil context attachment with the standard list_head structure. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Brian Foster <bfoster@redhat.com> Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com> Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
This commit is contained in:

committed by
Darrick J. Wong

parent
efe2330fdc
commit
89ae379d56
@@ -6,6 +6,8 @@
|
||||
#ifndef __XFS_LOG_H__
|
||||
#define __XFS_LOG_H__
|
||||
|
||||
struct xfs_cil_ctx;
|
||||
|
||||
struct xfs_log_vec {
|
||||
struct xfs_log_vec *lv_next; /* next lv in build list */
|
||||
int lv_niovecs; /* number of iovecs in lv */
|
||||
@@ -71,16 +73,6 @@ xlog_copy_iovec(struct xfs_log_vec *lv, struct xfs_log_iovec **vecp,
|
||||
return buf;
|
||||
}
|
||||
|
||||
/*
|
||||
* Structure used to pass callback function and the function's argument
|
||||
* to the log manager.
|
||||
*/
|
||||
typedef struct xfs_log_callback {
|
||||
struct xfs_log_callback *cb_next;
|
||||
void (*cb_func)(void *, bool);
|
||||
void *cb_arg;
|
||||
} xfs_log_callback_t;
|
||||
|
||||
/*
|
||||
* By comparing each component, we don't have to worry about extra
|
||||
* endian issues in treating two 32 bit numbers as one 64 bit number
|
||||
@@ -129,8 +121,6 @@ int xfs_log_mount_cancel(struct xfs_mount *);
|
||||
xfs_lsn_t xlog_assign_tail_lsn(struct xfs_mount *mp);
|
||||
xfs_lsn_t xlog_assign_tail_lsn_locked(struct xfs_mount *mp);
|
||||
void xfs_log_space_wake(struct xfs_mount *mp);
|
||||
int xfs_log_notify(struct xlog_in_core *iclog,
|
||||
struct xfs_log_callback *callback_entry);
|
||||
int xfs_log_release_iclog(struct xfs_mount *mp,
|
||||
struct xlog_in_core *iclog);
|
||||
int xfs_log_reserve(struct xfs_mount *mp,
|
||||
@@ -148,6 +138,7 @@ void xfs_log_ticket_put(struct xlog_ticket *ticket);
|
||||
|
||||
void xfs_log_commit_cil(struct xfs_mount *mp, struct xfs_trans *tp,
|
||||
xfs_lsn_t *commit_lsn, bool regrant);
|
||||
void xlog_cil_process_committed(struct list_head *list, bool aborted);
|
||||
bool xfs_log_item_in_current_chkpt(struct xfs_log_item *lip);
|
||||
|
||||
void xfs_log_work_queue(struct xfs_mount *mp);
|
||||
|
Reference in New Issue
Block a user