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