diff options
author | Dave Chinner <david@fromorbit.com> | 2014-03-13 04:13:05 -0400 |
---|---|---|
committer | Dave Chinner <david@fromorbit.com> | 2014-03-13 04:13:05 -0400 |
commit | 5f44e4c185ec5a4a438841cbd4983d0c4a106a4a (patch) | |
tree | 894419c679250407eb7a76af9d1525c47226a085 /fs/xfs/xfs_trans_resv.c | |
parent | 49ae4b97d760d2e63394b96a7e14cbb43b9dc942 (diff) | |
parent | fe4c224aa1ffa4352849ac5f452de7132739bee2 (diff) |
Merge branch 'xfs-bug-fixes-for-3.15-2' into for-next
Diffstat (limited to 'fs/xfs/xfs_trans_resv.c')
-rw-r--r-- | fs/xfs/xfs_trans_resv.c | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/fs/xfs/xfs_trans_resv.c b/fs/xfs/xfs_trans_resv.c index 8515b0449dc8..d2c8e4a6ee2a 100644 --- a/fs/xfs/xfs_trans_resv.c +++ b/fs/xfs/xfs_trans_resv.c | |||
@@ -81,20 +81,28 @@ xfs_calc_buf_res( | |||
81 | * on disk. Hence we need an inode reservation function that calculates all this | 81 | * on disk. Hence we need an inode reservation function that calculates all this |
82 | * correctly. So, we log: | 82 | * correctly. So, we log: |
83 | * | 83 | * |
84 | * - log op headers for object | 84 | * - 4 log op headers for object |
85 | * - for the ilf, the inode core and 2 forks | ||
85 | * - inode log format object | 86 | * - inode log format object |
86 | * - the entire inode contents (core + 2 forks) | 87 | * - the inode core |
87 | * - two bmap btree block headers | 88 | * - two inode forks containing bmap btree root blocks. |
89 | * - the btree data contained by both forks will fit into the inode size, | ||
90 | * hence when combined with the inode core above, we have a total of the | ||
91 | * actual inode size. | ||
92 | * - the BMBT headers need to be accounted separately, as they are | ||
93 | * additional to the records and pointers that fit inside the inode | ||
94 | * forks. | ||
88 | */ | 95 | */ |
89 | STATIC uint | 96 | STATIC uint |
90 | xfs_calc_inode_res( | 97 | xfs_calc_inode_res( |
91 | struct xfs_mount *mp, | 98 | struct xfs_mount *mp, |
92 | uint ninodes) | 99 | uint ninodes) |
93 | { | 100 | { |
94 | return ninodes * (sizeof(struct xlog_op_header) + | 101 | return ninodes * |
95 | sizeof(struct xfs_inode_log_format) + | 102 | (4 * sizeof(struct xlog_op_header) + |
96 | mp->m_sb.sb_inodesize + | 103 | sizeof(struct xfs_inode_log_format) + |
97 | 2 * XFS_BMBT_BLOCK_LEN(mp)); | 104 | mp->m_sb.sb_inodesize + |
105 | 2 * XFS_BMBT_BLOCK_LEN(mp)); | ||
98 | } | 106 | } |
99 | 107 | ||
100 | /* | 108 | /* |