* Copyright (C) International Business Machines Corp., 2000-2003
*/
#ifndef _H_JFS_SUPERBLOCK
#define _H_JFS_SUPERBLOCK
#include <linux/uuid.h>
* make the magic number something a human could read
*/
#define JFS_MAGIC "JFS1"
#define JFS_VERSION 2
#define LV_NAME_SIZE 11
* aggregate superblock
*
* The name superblock is too close to super_block, so the name has been
* changed to jfs_superblock. The utilities are still using the old name.
*/
struct jfs_superblock {
char s_magic[4];
__le32 s_version;
__le64 s_size;
* VFS: number of blocks
*/
__le32 s_bsize;
* VFS: fragment size
*/
__le16 s_l2bsize;
__le16 s_l2bfactor;
__le32 s_pbsize;
__le16 s_l2pbsize;
__le16 pad;
__le32 s_agsize;
__le32 s_flag;
* see jfs_filsys.h
*/
__le32 s_state;
* see jfs_filsys.h
*/
__le32 s_compress;
pxd_t s_ait2;
* aggregate inode table
*/
pxd_t s_aim2;
* aggregate inode map
*/
__le32 s_logdev;
__le32 s_logserial;
pxd_t s_logpxd;
pxd_t s_fsckpxd;
struct timestruc_t s_time;
__le32 s_fsckloglen;
* the fsck service log.
* N.B. These blocks are divided among the
* versions kept. This is not a per
* version size.
* N.B. These blocks are included in the
* length field of s_fsckpxd.
*/
s8 s_fscklog;
* 0 => no service log data yet
* 1 => the first one
* 2 => the 2nd one
*/
char s_fpack[11];
* N.B. This must be 11 bytes to
* conform with the OS/2 BootSector
* requirements
* Only used when s_version is 1
*/
__le64 s_xsize;
pxd_t s_xfsckpxd;
pxd_t s_xlogpxd;
uuid_t s_uuid;
char s_label[16];
uuid_t s_loguuid;
};
extern int readSuper(struct super_block *, struct buffer_head **);
extern int updateSuper(struct super_block *, uint);
__printf(2, 3)
extern void jfs_error(struct super_block *, const char *, ...);
extern int jfs_mount(struct super_block *);
extern int jfs_mount_rw(struct super_block *, int);
extern int jfs_umount(struct super_block *);
extern int jfs_umount_rw(struct super_block *);
extern int jfs_extendfs(struct super_block *, s64, int);
extern struct task_struct *jfsIOthread;
extern struct task_struct *jfsSyncThread;
#endif