On Tue, Nov 06, 2007 at 02:33:53AM -0800, akpm@linux-foundation.org wrote:
[mmotm.git] / fs / reiser4 / status_flags.h
blobbee9d2ee22cab59771ae6cb5491d80e90da819d1
1 /* Copyright 2001, 2002, 2003 by Hans Reiser, licensing governed by
2 * reiser4/README */
4 /* Here we declare structures and flags that store reiser4 status on disk.
5 The status that helps us to find out if the filesystem is valid or if it
6 contains some critical, or not so critical errors */
8 #if !defined(__REISER4_STATUS_FLAGS_H__)
9 #define __REISER4_STATUS_FLAGS_H__
11 #include "dformat.h"
12 /* These are major status flags */
13 #define REISER4_STATUS_OK 0
14 #define REISER4_STATUS_CORRUPTED 0x1
15 #define REISER4_STATUS_DAMAGED 0x2
16 #define REISER4_STATUS_DESTROYED 0x4
17 #define REISER4_STATUS_IOERROR 0x8
19 /* Return values for reiser4_status_query() */
20 #define REISER4_STATUS_MOUNT_OK 0
21 #define REISER4_STATUS_MOUNT_WARN 1
22 #define REISER4_STATUS_MOUNT_RO 2
23 #define REISER4_STATUS_MOUNT_UNKNOWN -1
25 #define REISER4_TEXTERROR_LEN 256
27 #define REISER4_STATUS_MAGIC "ReiSeR4StATusBl"
28 /* We probably need to keep its size under sector size which is 512 bytes */
29 struct reiser4_status {
30 char magic[16];
31 d64 status; /* Current FS state */
32 d64 extended_status; /* Any additional info that might have sense in
33 * addition to "status". E.g. last sector where
34 * io error happened if status is
35 * "io error encountered" */
36 d64 stacktrace[10]; /* Last ten functional calls made (addresses) */
37 char texterror[REISER4_TEXTERROR_LEN]; /* Any error message if
38 * appropriate, otherwise filled
39 * with zeroes */
42 int reiser4_status_init(reiser4_block_nr block);
43 int reiser4_status_query(u64 *status, u64 *extended);
44 int reiser4_status_write(u64 status, u64 extended_status, char *message);
45 int reiser4_status_finish(void);
47 #endif