ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.6.tar.bz2
[linux-2.6.git] / include / linux / affs_fs_sb.h
1 #ifndef _AFFS_FS_SB
2 #define _AFFS_FS_SB
3
4 /*
5  * super-block data in memory
6  *
7  * Block numbers are adjusted for their actual size
8  *
9  */
10
11 struct affs_bm_info {
12         u32 bm_key;                     /* Disk block number */
13         u32 bm_free;                    /* Free blocks in here */
14 };
15
16 struct affs_sb_info {
17         int s_partition_size;           /* Partition size in blocks. */
18         int s_reserved;                 /* Number of reserved blocks. */
19         //u32 s_blksize;                        /* Initial device blksize */
20         u32 s_data_blksize;             /* size of the data block w/o header */
21         u32 s_root_block;               /* FFS root block number. */
22         int s_hashsize;                 /* Size of hash table. */
23         unsigned long s_flags;          /* See below. */
24         uid_t s_uid;                    /* uid to override */
25         gid_t s_gid;                    /* gid to override */
26         umode_t s_mode;                 /* mode to override */
27         struct buffer_head *s_root_bh;  /* Cached root block. */
28         struct semaphore s_bmlock;      /* Protects bitmap access. */
29         struct affs_bm_info *s_bitmap;  /* Bitmap infos. */
30         u32 s_bmap_count;               /* # of bitmap blocks. */
31         u32 s_bmap_bits;                /* # of bits in one bitmap blocks */
32         u32 s_last_bmap;
33         struct buffer_head *s_bmap_bh;
34         char *s_prefix;                 /* Prefix for volumes and assigns. */
35         int s_prefix_len;               /* Length of prefix. */
36         char s_volume[32];              /* Volume prefix for absolute symlinks. */
37 };
38
39 #define SF_INTL         0x0001          /* International filesystem. */
40 #define SF_BM_VALID     0x0002          /* Bitmap is valid. */
41 #define SF_IMMUTABLE    0x0004          /* Protection bits cannot be changed */
42 #define SF_QUIET        0x0008          /* chmod errors will be not reported */
43 #define SF_SETUID       0x0010          /* Ignore Amiga uid */
44 #define SF_SETGID       0x0020          /* Ignore Amiga gid */
45 #define SF_SETMODE      0x0040          /* Ignore Amiga protection bits */
46 #define SF_MUFS         0x0100          /* Use MUFS uid/gid mapping */
47 #define SF_OFS          0x0200          /* Old filesystem */
48 #define SF_PREFIX       0x0400          /* Buffer for prefix is allocated */
49 #define SF_VERBOSE      0x0800          /* Talk about fs when mounting */
50 #define SF_READONLY     0x1000          /* Don't allow to remount rw */
51
52 /* short cut to get to the affs specific sb data */
53 static inline struct affs_sb_info *AFFS_SB(struct super_block *sb)
54 {
55         return sb->s_fs_info;
56 }
57
58 #endif