Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
fs
jfs
jfs_superblock.h
Go to the documentation of this file.
1
/*
2
* Copyright (C) International Business Machines Corp., 2000-2003
3
*
4
* This program is free software; you can redistribute it and/or modify
5
* it under the terms of the GNU General Public License as published by
6
* the Free Software Foundation; either version 2 of the License, or
7
* (at your option) any later version.
8
*
9
* This program is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
12
* the GNU General Public License for more details.
13
*
14
* You should have received a copy of the GNU General Public License
15
* along with this program; if not, write to the Free Software
16
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17
*/
18
#ifndef _H_JFS_SUPERBLOCK
19
#define _H_JFS_SUPERBLOCK
20
21
/*
22
* make the magic number something a human could read
23
*/
24
#define JFS_MAGIC "JFS1"
/* Magic word */
25
26
#define JFS_VERSION 2
/* Version number: Version 2 */
27
28
#define LV_NAME_SIZE 11
/* MUST BE 11 for OS/2 boot sector */
29
30
/*
31
* aggregate superblock
32
*
33
* The name superblock is too close to super_block, so the name has been
34
* changed to jfs_superblock. The utilities are still using the old name.
35
*/
36
struct
jfs_superblock
{
37
char
s_magic
[4];
/* 4: magic number */
38
__le32
s_version
;
/* 4: version number */
39
40
__le64
s_size
;
/* 8: aggregate size in hardware/LVM blocks;
41
* VFS: number of blocks
42
*/
43
__le32
s_bsize
;
/* 4: aggregate block size in bytes;
44
* VFS: fragment size
45
*/
46
__le16
s_l2bsize
;
/* 2: log2 of s_bsize */
47
__le16
s_l2bfactor
;
/* 2: log2(s_bsize/hardware block size) */
48
__le32
s_pbsize
;
/* 4: hardware/LVM block size in bytes */
49
__le16
s_l2pbsize
;
/* 2: log2 of s_pbsize */
50
__le16
pad
;
/* 2: padding necessary for alignment */
51
52
__le32
s_agsize
;
/* 4: allocation group size in aggr. blocks */
53
54
__le32
s_flag
;
/* 4: aggregate attributes:
55
* see jfs_filsys.h
56
*/
57
__le32
s_state
;
/* 4: mount/unmount/recovery state:
58
* see jfs_filsys.h
59
*/
60
__le32
s_compress
;
/* 4: > 0 if data compression */
61
62
pxd_t
s_ait2
;
/* 8: first extent of secondary
63
* aggregate inode table
64
*/
65
66
pxd_t
s_aim2
;
/* 8: first extent of secondary
67
* aggregate inode map
68
*/
69
__le32
s_logdev
;
/* 4: device address of log */
70
__le32
s_logserial
;
/* 4: log serial number at aggregate mount */
71
pxd_t
s_logpxd
;
/* 8: inline log extent */
72
73
pxd_t
s_fsckpxd
;
/* 8: inline fsck work space extent */
74
75
struct
timestruc_t
s_time
;
/* 8: time last updated */
76
77
__le32
s_fsckloglen
;
/* 4: Number of filesystem blocks reserved for
78
* the fsck service log.
79
* N.B. These blocks are divided among the
80
* versions kept. This is not a per
81
* version size.
82
* N.B. These blocks are included in the
83
* length field of s_fsckpxd.
84
*/
85
s8
s_fscklog
;
/* 1: which fsck service log is most recent
86
* 0 => no service log data yet
87
* 1 => the first one
88
* 2 => the 2nd one
89
*/
90
char
s_fpack
[11];
/* 11: file system volume name
91
* N.B. This must be 11 bytes to
92
* conform with the OS/2 BootSector
93
* requirements
94
* Only used when s_version is 1
95
*/
96
97
/* extendfs() parameter under s_state & FM_EXTENDFS */
98
__le64
s_xsize
;
/* 8: extendfs s_size */
99
pxd_t
s_xfsckpxd
;
/* 8: extendfs fsckpxd */
100
pxd_t
s_xlogpxd
;
/* 8: extendfs logpxd */
101
/* - 128 byte boundary - */
102
103
char
s_uuid
[16];
/* 16: 128-bit uuid for volume */
104
char
s_label
[16];
/* 16: volume label */
105
char
s_loguuid
[16];
/* 16: 128-bit uuid for log device */
106
107
};
108
109
extern
int
readSuper
(
struct
super_block
*,
struct
buffer_head **);
110
extern
int
updateSuper
(
struct
super_block
*,
uint
);
111
extern
void
jfs_error
(
struct
super_block
*,
const
char
*, ...);
112
extern
int
jfs_mount
(
struct
super_block
*);
113
extern
int
jfs_mount_rw
(
struct
super_block
*,
int
);
114
extern
int
jfs_umount
(
struct
super_block
*);
115
extern
int
jfs_umount_rw
(
struct
super_block
*);
116
extern
int
jfs_extendfs
(
struct
super_block
*,
s64
,
int
);
117
118
extern
struct
task_struct
*
jfsIOthread
;
119
extern
struct
task_struct
*
jfsSyncThread
;
120
121
#endif
/*_H_JFS_SUPERBLOCK */
Generated on Thu Jan 10 2013 14:47:49 for Linux Kernel by
1.8.2