| .. | .. |
|---|
| 6 | 6 | #ifndef __XFS_LOG_H__ |
|---|
| 7 | 7 | #define __XFS_LOG_H__ |
|---|
| 8 | 8 | |
|---|
| 9 | +struct xfs_cil_ctx; |
|---|
| 10 | + |
|---|
| 9 | 11 | struct xfs_log_vec { |
|---|
| 10 | 12 | struct xfs_log_vec *lv_next; /* next lv in build list */ |
|---|
| 11 | 13 | int lv_niovecs; /* number of iovecs in lv */ |
|---|
| .. | .. |
|---|
| 72 | 74 | } |
|---|
| 73 | 75 | |
|---|
| 74 | 76 | /* |
|---|
| 75 | | - * Structure used to pass callback function and the function's argument |
|---|
| 76 | | - * to the log manager. |
|---|
| 77 | | - */ |
|---|
| 78 | | -typedef struct xfs_log_callback { |
|---|
| 79 | | - struct xfs_log_callback *cb_next; |
|---|
| 80 | | - void (*cb_func)(void *, int); |
|---|
| 81 | | - void *cb_arg; |
|---|
| 82 | | -} xfs_log_callback_t; |
|---|
| 83 | | - |
|---|
| 84 | | -/* |
|---|
| 85 | 77 | * By comparing each component, we don't have to worry about extra |
|---|
| 86 | 78 | * endian issues in treating two 32 bit numbers as one 64 bit number |
|---|
| 87 | 79 | */ |
|---|
| .. | .. |
|---|
| 113 | 105 | struct xfs_item_ops; |
|---|
| 114 | 106 | struct xfs_trans; |
|---|
| 115 | 107 | |
|---|
| 116 | | -xfs_lsn_t xfs_log_done(struct xfs_mount *mp, |
|---|
| 117 | | - struct xlog_ticket *ticket, |
|---|
| 118 | | - struct xlog_in_core **iclog, |
|---|
| 119 | | - bool regrant); |
|---|
| 120 | 108 | int xfs_log_force(struct xfs_mount *mp, uint flags); |
|---|
| 121 | | -int xfs_log_force_lsn(struct xfs_mount *mp, xfs_lsn_t lsn, uint flags, |
|---|
| 109 | +int xfs_log_force_seq(struct xfs_mount *mp, xfs_csn_t seq, uint flags, |
|---|
| 122 | 110 | int *log_forced); |
|---|
| 123 | 111 | int xfs_log_mount(struct xfs_mount *mp, |
|---|
| 124 | 112 | struct xfs_buftarg *log_target, |
|---|
| 125 | 113 | xfs_daddr_t start_block, |
|---|
| 126 | 114 | int num_bblocks); |
|---|
| 127 | 115 | int xfs_log_mount_finish(struct xfs_mount *mp); |
|---|
| 128 | | -int xfs_log_mount_cancel(struct xfs_mount *); |
|---|
| 116 | +void xfs_log_mount_cancel(struct xfs_mount *); |
|---|
| 129 | 117 | xfs_lsn_t xlog_assign_tail_lsn(struct xfs_mount *mp); |
|---|
| 130 | 118 | xfs_lsn_t xlog_assign_tail_lsn_locked(struct xfs_mount *mp); |
|---|
| 131 | 119 | void xfs_log_space_wake(struct xfs_mount *mp); |
|---|
| 132 | | -int xfs_log_notify(struct xlog_in_core *iclog, |
|---|
| 133 | | - struct xfs_log_callback *callback_entry); |
|---|
| 134 | | -int xfs_log_release_iclog(struct xfs_mount *mp, |
|---|
| 135 | | - struct xlog_in_core *iclog); |
|---|
| 120 | +void xfs_log_release_iclog(struct xlog_in_core *iclog); |
|---|
| 136 | 121 | int xfs_log_reserve(struct xfs_mount *mp, |
|---|
| 137 | 122 | int length, |
|---|
| 138 | 123 | int count, |
|---|
| .. | .. |
|---|
| 142 | 127 | int xfs_log_regrant(struct xfs_mount *mp, struct xlog_ticket *tic); |
|---|
| 143 | 128 | void xfs_log_unmount(struct xfs_mount *mp); |
|---|
| 144 | 129 | int xfs_log_force_umount(struct xfs_mount *mp, int logerror); |
|---|
| 130 | +bool xfs_log_writable(struct xfs_mount *mp); |
|---|
| 145 | 131 | |
|---|
| 146 | 132 | struct xlog_ticket *xfs_log_ticket_get(struct xlog_ticket *ticket); |
|---|
| 147 | 133 | void xfs_log_ticket_put(struct xlog_ticket *ticket); |
|---|
| 148 | 134 | |
|---|
| 149 | | -void xfs_log_commit_cil(struct xfs_mount *mp, struct xfs_trans *tp, |
|---|
| 150 | | - xfs_lsn_t *commit_lsn, bool regrant); |
|---|
| 135 | +void xlog_cil_process_committed(struct list_head *list); |
|---|
| 151 | 136 | bool xfs_log_item_in_current_chkpt(struct xfs_log_item *lip); |
|---|
| 152 | 137 | |
|---|
| 153 | 138 | void xfs_log_work_queue(struct xfs_mount *mp); |
|---|
| .. | .. |
|---|
| 155 | 140 | bool xfs_log_check_lsn(struct xfs_mount *, xfs_lsn_t); |
|---|
| 156 | 141 | bool xfs_log_in_recovery(struct xfs_mount *); |
|---|
| 157 | 142 | |
|---|
| 143 | +xfs_lsn_t xlog_grant_push_threshold(struct xlog *log, int need_bytes); |
|---|
| 144 | + |
|---|
| 158 | 145 | #endif /* __XFS_LOG_H__ */ |
|---|