Lines Matching +full:4 +full:-
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
3 * Copyright (C) International Business Machines Corp., 2000-2004
4 * Portions Copyright (C) Christoph Hellwig, 2001-2002
36 * blocks 2 - (N-1) are used to contain log records.
38 * when a volume group is varied-on-line, logRedo() must have
54 __le32 magic; /* 4: log lv identifier */
55 __le32 version; /* 4: version number */
56 __le32 serial; /* 4: log open/mount counter */
57 __le32 size; /* 4: size in number of LOGPSIZE blocks */
58 __le32 bsize; /* 4: logical block size in byte */
59 __le32 l2bsize; /* 4: log2 of bsize */
61 __le32 flag; /* 4: option */
62 __le32 state; /* 4: state - see below */
64 __le32 end; /* 4: addr of last log record set by logredo */
65 uuid_t uuid; /* 16: 128-bit journal uuid */
111 __le32 page; /* 4: log sequence page number */
113 __le16 eor; /* 2: end-of-log offset of lasrt record write */
116 __le32 data[LOGPSIZE / 4 - 4]; /* log record area */
119 __le32 page; /* 4: normally the same as h.page */
139 * in main-memory.)
143 * the data area is rounded up to an integral number of 4-bytes and
145 * the descriptor is of size of multiple of 4-bytes and aligned on a
146 * 4-byte boundary.
192 __le32 logtid; /* 4: log transaction identifier */
193 __le32 backchain; /* 4: ptr to prev record of same transaction */
196 __le32 aggregate; /* 4: file system lv/aggregate */
207 * transaction commit: no type-dependent information;
211 * REDOPAGE: after-image
213 * apply after-image;
218 __le32 fileset; /* 4: fileset number */
219 __le32 inode; /* 4: inode number */
222 pxd_t pxd; /* 8: on-disk page pxd */
228 * do not apply after-image records which precede this record
234 __le32 fileset; /* 4: fileset number */
235 __le32 inode; /* 4: inode number */
238 pxd_t pxd; /* 8: on-disk page pxd */
244 * either in-line PXD,
245 * or out-of-line XADLIST;
250 __le32 fileset; /* 4: fileset number */
251 __le32 inode; /* 4: inode number */
260 * do not apply after-image records which precede this
261 * record in the log with the any of the 4 page block
269 __le32 fileset; /* 4: fileset number */
270 __le32 iagnum; /* 4: IAG number */
271 __le32 inoext_idx; /* 4: inode extent index */
272 pxd_t pxd; /* 8: on-disk page pxd */
281 __le32 sync; /* 4: syncpt address (0 = here) */
287 * file system mount: no type-dependent information;
297 __le32 type; /* 4: FREEXTENT record type */
298 __le32 nextent; /* 4: number of extents */
310 * (last to be read in logredo()) - it prevents
312 * of the inumber esp. the on-disk inode itself.
315 __le32 fileset; /* 4: fileset number */
316 __le32 inode; /* 4: inode number */
325 __le32 fileset; /* 4: fileset number */
326 __le32 inode; /* 4: inode number */
327 __le32 type; /* 4: NEWPAGE record type */
328 pxd_t pxd; /* 8: on-disk page pxd */
334 * no type-dependent information
359 struct file *bdev_file; /* 4: log lv pointer */
360 int serial; /* 4: log mount serial number */
363 int size; /* 4: log size in log page (in page) */
364 int l2bsize; /* 4: log2 of bsize */
366 unsigned long flag; /* 4: flag */
368 struct lbuf *lbuf_free; /* 4: free lbufs */
369 wait_queue_head_t free_wait; /* 4: */
372 int logtid; /* 4: log tid */
373 int page; /* 4: page number of eol page */
374 int eor; /* 4: eor of last record in eol page */
375 struct lbuf *bp; /* 4: current log page buffer */
377 struct mutex loglock; /* 4: log write serialization lock */
380 int nextsync; /* 4: bytes to write before next syncpt */
381 int active; /* 4: */
382 wait_queue_head_t syncwait; /* 4: */
385 uint cflag; /* 4: */
388 int gcrtc; /* 4: GC_READY transaction count */
389 struct tblock *gclrt; /* 4: latest GC_READY transaction */
390 spinlock_t gclock; /* 4: group commit lock */
391 int logsize; /* 4: log data area size in byte */
392 int lsn; /* 4: end-of-log */
393 int clsn; /* 4: clsn */
394 int syncpt; /* 4: addr of last syncpt record */
395 int sync; /* 4: addr from last logsync() */
397 spinlock_t synclock; /* 4: synclist lock */
398 struct lbuf *wqueue; /* 4: log pageout queue */
399 int count; /* 4: count */
400 uuid_t uuid; /* 16: 128-bit uuid of log device */
411 #define log_FLUSH 4
435 struct jfs_log *l_log; /* 4: log associated with buffer */
440 uint l_flag; /* 4: pageout control flags */
442 struct lbuf *l_wqnext; /* 4: write queue link */
443 struct lbuf *l_freelist; /* 4: freelistlink */
445 int l_pn; /* 4: log page number */
446 int l_eor; /* 4: log record eor */
447 int l_ceor; /* 4: committed log record eor */
450 caddr_t l_ldata; /* 4: data page */
454 wait_queue_head_t l_ioevent; /* 4: i/o done event */
477 #define LOGSYNC_LOCK_INIT(log) spin_lock_init(&(log)->synclock)
478 #define LOGSYNC_LOCK(log, flags) spin_lock_irqsave(&(log)->synclock, flags)
480 spin_unlock_irqrestore(&(log)->synclock, flags)
485 diff = (lsn) - (log)->syncpt;\
487 diff += (log)->logsize;\