1655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng/**************************************************************************** 2655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng **************************************************************************** 3655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** 4655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** This header was automatically generated from a Linux kernel header 5655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** of the same name, to make information necessary for userspace to 6655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** call into the kernel available to libc. It contains only constants, 7655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** structures, and macros generated from the original header, and thus, 8655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** contains no copyrightable information. 9655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** 10655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** To edit the content of this header, modify the corresponding 11655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** source file (e.g. under external/kernel-headers/original/) then 12655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** run bionic/libc/kernel/tools/update_all.py 13655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** 14655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** Any manual change here will be lost the next time this script will 15655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** be run. You've been warned! 16655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng *** 17655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng **************************************************************************** 18655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng ****************************************************************************/ 19655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#ifndef __GFS2_ONDISK_DOT_H__ 20655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define __GFS2_ONDISK_DOT_H__ 21655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#include <linux/types.h> 22655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_MAGIC 0x01161970 23655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_BASIC_BLOCK 512 24655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_BASIC_BLOCK_SHIFT 9 25655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_MOUNT_LOCK 0 26655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_LIVE_LOCK 1 27ba8d4f460b51161eb82cf1006cb34a3cc1389f47Christopher Ferris#define GFS2_FREEZE_LOCK 2 28655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_RENAME_LOCK 3 29655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_CONTROL_LOCK 4 30655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_MOUNTED_LOCK 5 31655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_FORMAT_NONE 0 32655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_FORMAT_SB 100 33655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_FORMAT_RG 200 34655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_FORMAT_RB 300 35655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_FORMAT_DI 400 36655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_FORMAT_IN 500 37655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_FORMAT_LF 600 38655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_FORMAT_JD 700 39655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_FORMAT_LH 800 40655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_FORMAT_LD 900 41655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_FORMAT_LB 1000 42655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_FORMAT_EA 1600 43655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_FORMAT_ED 1700 44655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_FORMAT_QC 1400 45655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_FORMAT_RI 1100 46655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_FORMAT_DE 1200 47655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_FORMAT_QU 1500 48655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_FORMAT_FS 1801 49655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_FORMAT_MULTI 1900 50655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct gfs2_inum { 51d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be64 no_formal_ino; 52d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be64 no_addr; 53655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 54655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_METATYPE_NONE 0 55655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_METATYPE_SB 1 56655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_METATYPE_RG 2 57655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_METATYPE_RB 3 58655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_METATYPE_DI 4 59655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_METATYPE_IN 5 60655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_METATYPE_LF 6 61655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_METATYPE_JD 7 62655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_METATYPE_LH 8 63655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_METATYPE_LD 9 64655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_METATYPE_LB 12 65655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_METATYPE_EA 10 66655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_METATYPE_ED 11 67655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_METATYPE_QC 14 68655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct gfs2_meta_header { 69d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be32 mh_magic; 70d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be32 mh_type; 71d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be64 __pad0; 72d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be32 mh_format; 73d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao union { 74d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be32 mh_jid; 75d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be32 __pad1; 76d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao }; 77655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 78655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_SB_ADDR 128 79655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_SB_LOCK 0 80655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_LOCKNAME_LEN 64 81655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct gfs2_sb { 82d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct gfs2_meta_header sb_header; 83d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be32 sb_fs_format; 84d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be32 sb_multihost_format; 85d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 __pad0; 86d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be32 sb_bsize; 87d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be32 sb_bsize_shift; 88d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 __pad1; 89d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct gfs2_inum sb_master_dir; 90d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct gfs2_inum __pad2; 91d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct gfs2_inum sb_root_dir; 92d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao char sb_lockproto[GFS2_LOCKNAME_LEN]; 93d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao char sb_locktable[GFS2_LOCKNAME_LEN]; 94d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct gfs2_inum __pad3; 95d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct gfs2_inum __pad4; 96655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_HAS_UUID 1 97d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u8 sb_uuid[16]; 98655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 99655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct gfs2_rindex { 100d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be64 ri_addr; 101d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be32 ri_length; 102d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 __pad; 103d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be64 ri_data0; 104d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be32 ri_data; 105d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be32 ri_bitbytes; 106d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u8 ri_reserved[64]; 107655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 108655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_NBBY 4 109655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_BIT_SIZE 2 110655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_BIT_MASK 0x00000003 111655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_BLKST_FREE 0 112655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_BLKST_USED 1 113655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_BLKST_UNLINKED 2 114655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_BLKST_DINODE 3 115655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_RGF_JOURNAL 0x00000001 116655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_RGF_METAONLY 0x00000002 117655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_RGF_DATAONLY 0x00000004 118655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_RGF_NOALLOC 0x00000008 119655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_RGF_TRIMMED 0x00000010 120655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct gfs2_rgrp_lvb { 121d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be32 rl_magic; 122d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be32 rl_flags; 123d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be32 rl_free; 124d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be32 rl_dinodes; 125d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be64 rl_igeneration; 126d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be32 rl_unlinked; 127d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be32 __pad; 128655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 129655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct gfs2_rgrp { 130d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct gfs2_meta_header rg_header; 131d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be32 rg_flags; 132d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be32 rg_free; 133d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be32 rg_dinodes; 134d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be32 __pad; 135d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be64 rg_igeneration; 136d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u8 rg_reserved[80]; 137655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 138655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct gfs2_quota { 139d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be64 qu_limit; 140d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be64 qu_warn; 141d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be64 qu_value; 142d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u8 qu_reserved[64]; 143655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 144655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_MAX_META_HEIGHT 10 145655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_DIR_MAX_DEPTH 17 146655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define DT2IF(dt) (((dt) << 12) & S_IFMT) 147655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define IF2DT(sif) (((sif) & S_IFMT) >> 12) 148655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengenum { 149d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao gfs2fl_Jdata = 0, 150d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao gfs2fl_ExHash = 1, 151d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao gfs2fl_Unused = 2, 152d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao gfs2fl_EaIndirect = 3, 153d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao gfs2fl_Directio = 4, 154d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao gfs2fl_Immutable = 5, 155d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao gfs2fl_AppendOnly = 6, 156d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao gfs2fl_NoAtime = 7, 157d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao gfs2fl_Sync = 8, 158d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao gfs2fl_System = 9, 159d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao gfs2fl_TopLevel = 10, 160d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao gfs2fl_TruncInProg = 29, 161d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao gfs2fl_InheritDirectio = 30, 162d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao gfs2fl_InheritJdata = 31, 163655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 164655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_DIF_JDATA 0x00000001 165655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_DIF_EXHASH 0x00000002 166655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_DIF_UNUSED 0x00000004 167655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_DIF_EA_INDIRECT 0x00000008 168655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_DIF_DIRECTIO 0x00000010 169655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_DIF_IMMUTABLE 0x00000020 170655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_DIF_APPENDONLY 0x00000040 171655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_DIF_NOATIME 0x00000080 172655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_DIF_SYNC 0x00000100 173655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_DIF_SYSTEM 0x00000200 174655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_DIF_TOPDIR 0x00000400 175655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_DIF_TRUNC_IN_PROG 0x20000000 176655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_DIF_INHERIT_DIRECTIO 0x40000000 177655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_DIF_INHERIT_JDATA 0x80000000 178655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct gfs2_dinode { 179d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct gfs2_meta_header di_header; 180d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct gfs2_inum di_num; 181d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be32 di_mode; 182d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be32 di_uid; 183d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be32 di_gid; 184d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be32 di_nlink; 185d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be64 di_size; 186d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be64 di_blocks; 187d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be64 di_atime; 188d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be64 di_mtime; 189d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be64 di_ctime; 190d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be32 di_major; 191d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be32 di_minor; 192d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be64 di_goal_meta; 193d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be64 di_goal_data; 194d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be64 di_generation; 195d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be32 di_flags; 196d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be32 di_payload_format; 197d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u16 __pad1; 198d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be16 di_height; 199d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 __pad2; 200d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u16 __pad3; 201d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be16 di_depth; 202d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be32 di_entries; 203d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct gfs2_inum __pad4; 204d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be64 di_eattr; 205d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be32 di_atime_nsec; 206d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be32 di_mtime_nsec; 207d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be32 di_ctime_nsec; 208d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u8 di_reserved[44]; 209655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 210655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_FNAMESIZE 255 211655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_DIRENT_SIZE(name_len) ((sizeof(struct gfs2_dirent) + (name_len) + 7) & ~7) 212106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris#define GFS2_MIN_DIRENT_SIZE (GFS2_DIRENT_SIZE(1)) 213655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct gfs2_dirent { 214d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct gfs2_inum de_inum; 215106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __be32 de_hash; 216d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be16 de_rec_len; 217d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be16 de_name_len; 218d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be16 de_type; 219106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __be16 de_rahead; 220106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris union { 221106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u8 __pad[12]; 222d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct { 223106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u32 de_cookie; 224106b3a8a7dc03c19a45e322de425ac56aafac358Christopher Ferris __u8 pad3[8]; 225d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao }; 226d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao }; 227655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 228655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct gfs2_leaf { 229d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct gfs2_meta_header lf_header; 230d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be16 lf_depth; 231d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be16 lf_entries; 232d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be32 lf_dirent_format; 233d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be64 lf_next; 234d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao union { 235d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u8 lf_reserved[64]; 236d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct { 237d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be64 lf_inode; 238d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be32 lf_dist; 239d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be32 lf_nsec; 240d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be64 lf_sec; 241d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u8 lf_reserved2[40]; 242d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao }; 243d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao }; 244655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 245655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_EA_MAX_NAME_LEN 255 246655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_EA_MAX_DATA_LEN 65536 24738062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define GFS2_EATYPE_UNUSED 0 248655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_EATYPE_USR 1 249655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_EATYPE_SYS 2 250655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_EATYPE_SECURITY 3 25138062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define GFS2_EATYPE_LAST 3 252655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_EATYPE_VALID(x) ((x) <= GFS2_EATYPE_LAST) 253655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_EAFLAG_LAST 0x01 254655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct gfs2_ea_header { 255d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be32 ea_rec_len; 256d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be32 ea_data_len; 257d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u8 ea_name_len; 258d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u8 ea_type; 259d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u8 ea_flags; 260d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u8 ea_num_ptrs; 261d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 __pad; 262655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 26338062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define GFS2_LOG_HEAD_UNMOUNT 0x00000001 264655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct gfs2_log_header { 265d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct gfs2_meta_header lh_header; 266d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be64 lh_sequence; 267d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be32 lh_flags; 268d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be32 lh_tail; 269d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be32 lh_blkno; 270d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be32 lh_hash; 27138062f954c637861348dd8078cefb73554e6f12cChristopher Ferris}; 272655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_LOG_DESC_METADATA 300 273655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_LOG_DESC_REVOKE 301 274655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_LOG_DESC_JDATA 302 27538062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisstruct gfs2_log_descriptor { 276d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao struct gfs2_meta_header ld_header; 277d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be32 ld_type; 278d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be32 ld_length; 279d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be32 ld_data1; 280d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be32 ld_data2; 281d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u8 ld_reserved[32]; 282655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 28338062f954c637861348dd8078cefb73554e6f12cChristopher Ferris#define GFS2_INUM_QUANTUM 1048576 284655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct gfs2_inum_range { 285d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be64 ir_start; 286d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be64 ir_length; 28738062f954c637861348dd8078cefb73554e6f12cChristopher Ferris}; 288655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct gfs2_statfs_change { 289d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be64 sc_total; 290d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be64 sc_free; 291d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be64 sc_dinodes; 292655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 293655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#define GFS2_QCF_USER 0x00000001 294655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Chengstruct gfs2_quota_change { 295d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be64 qc_change; 296d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be32 qc_flags; 297d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be32 qc_id; 298655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 29938062f954c637861348dd8078cefb73554e6f12cChristopher Ferrisstruct gfs2_quota_lvb { 300d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be32 qb_magic; 301d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __u32 __pad; 302d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be64 qb_limit; 303d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be64 qb_warn; 304d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao __be64 qb_value; 305655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng}; 306655a7c081f83b8351ed5f11a6c6accd9458293a8Ben Cheng#endif 307