1 | /* onode_versioned.h
2 | -----------------
3 |
4 | Data structures for versioned onode forks,
5 | keeps track of the revision log.
6 |
7 | $Id: onode_versioned.h,v 1.2 2003/10/20 07:18:11 stewart Exp $
8 |
9 | (C)2003 Stewart Smith
10 | Distributed under the GNU GPL
11 | */
12 |
13 | #ifndef __ONODE_VERSIONED_H__
14 | #define __ONODE_VERSIONED_H__
15 |
16 | #include "testkit/types.h"
17 |
18 | enum fcfs_onode_fork_rev_op {
19 | FCFS_ONODE_FORK_REV_REPLACE,
20 | FCFS_ONODE_FORK_REV_INSERT,
21 | FCFS_ONODE_FORE_REV_APPEND,
22 | FCFS_ONODE_FORK_REV_TRUNCATE,
23 | FCFS_ONODE_FORK_REV_GROW,
24 | };
25 |
26 | #define FCFS_ONODE_FORK_REV_MAGIC1 0xF0526B76 /* 0xF0 'R' 'k' 'v' */
27 |
28 | struct fcfs_onode_fork_rev {
29 | u64 revision; /* Increment for each revision */
30 | u64 consistent_revision; /* Used to note last consistent revision */
31 | u64 time; /* Time revision was done (not committed) */
32 | u32 operation; /* enum fcfs_onode_fork_rev_op */
33 | u32 magic1; /* FCFS_ONODE_FORK_REV_MAGIC1 */
34 | u64 rev_offset; /* Offset in revision fork */
35 | u64 rev_length; /* Length of revision fork data */
36 | u64 offset; /* Offset in real fork to apply to*/
37 | char space[16]; /* Space for future revisions */
38 | };
39 |
40 | #endif