1ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross/**************************************************************************** 2ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross **************************************************************************** 3ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross *** 4ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross *** This header was automatically generated from a Linux kernel header 5ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross *** of the same name, to make information necessary for userspace to 6ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross *** call into the kernel available to libc. It contains only constants, 7ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross *** structures, and macros generated from the original header, and thus, 8ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross *** contains no copyrightable information. 9ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross *** 10ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross **************************************************************************** 11ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross ****************************************************************************/ 12ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross#ifndef _EXT4_JBD2_H 13ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross#define _EXT4_JBD2_H 14ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross 15ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross#include "ext4.h" 16ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross 17ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross#define EXT4_JOURNAL(inode) (EXT4_SB((inode)->i_sb)->s_journal) 18ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross 19ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross#define EXT4_SINGLEDATA_TRANS_BLOCKS(sb) (EXT4_HAS_INCOMPAT_FEATURE(sb, EXT4_FEATURE_INCOMPAT_EXTENTS) ? 27U : 8U) 20ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross 21ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross#define EXT4_XATTR_TRANS_BLOCKS 6U 22ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross 23ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross#define EXT4_DATA_TRANS_BLOCKS(sb) (EXT4_SINGLEDATA_TRANS_BLOCKS(sb) + EXT4_XATTR_TRANS_BLOCKS - 2 + EXT4_MAXQUOTAS_TRANS_BLOCKS(sb)) 24ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross 25ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross#define EXT4_META_TRANS_BLOCKS(sb) (EXT4_XATTR_TRANS_BLOCKS + EXT4_MAXQUOTAS_TRANS_BLOCKS(sb)) 26ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross 27ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross#define EXT4_DELETE_TRANS_BLOCKS(sb) (2 * EXT4_DATA_TRANS_BLOCKS(sb) + 64) 28ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross 29ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross#define EXT4_MAX_TRANS_DATA 64U 30ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross 31ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross#define EXT4_RESERVE_TRANS_BLOCKS 12U 32ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross 33ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross#define EXT4_INDEX_EXTRA_TRANS_BLOCKS 8 34ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross 35ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross#define EXT4_QUOTA_TRANS_BLOCKS(sb) 0 36ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross#define EXT4_QUOTA_INIT_BLOCKS(sb) 0 37ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross#define EXT4_QUOTA_DEL_BLOCKS(sb) 0 38ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross#define EXT4_MAXQUOTAS_TRANS_BLOCKS(sb) (MAXQUOTAS*EXT4_QUOTA_TRANS_BLOCKS(sb)) 39ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross#define EXT4_MAXQUOTAS_INIT_BLOCKS(sb) (MAXQUOTAS*EXT4_QUOTA_INIT_BLOCKS(sb)) 40ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross#define EXT4_MAXQUOTAS_DEL_BLOCKS(sb) (MAXQUOTAS*EXT4_QUOTA_DEL_BLOCKS(sb)) 41ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross 42ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross#define ext4_journal_get_undo_access(handle, bh) __ext4_journal_get_undo_access(__func__, (handle), (bh)) 43ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross#define ext4_journal_get_write_access(handle, bh) __ext4_journal_get_write_access(__func__, (handle), (bh)) 44ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross#define ext4_forget(handle, is_metadata, inode, bh, block_nr) __ext4_forget(__func__, (handle), (is_metadata), (inode), (bh), (block_nr)) 45ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross#define ext4_journal_get_create_access(handle, bh) __ext4_journal_get_create_access(__func__, (handle), (bh)) 46ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross#define ext4_handle_dirty_metadata(handle, inode, bh) __ext4_handle_dirty_metadata(__func__, (handle), (inode), (bh)) 47ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross 48ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross#define EXT4_NOJOURNAL_MAX_REF_COUNT ((unsigned long) 4096) 49ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross 50ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross#define ext4_journal_stop(handle) __ext4_journal_stop(__func__, (handle)) 51ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross 52ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross#endif 53ec0a2e83dc66d67addeb90e83144187691852a3eColin Cross 54