diff options
Diffstat (limited to 'fs/ext4/ext4_jbd2.h')
| -rw-r--r-- | fs/ext4/ext4_jbd2.h | 14 | 
1 files changed, 14 insertions, 0 deletions
diff --git a/fs/ext4/ext4_jbd2.h b/fs/ext4/ext4_jbd2.h index c1fc2dca14a..4c216b1bf20 100644 --- a/fs/ext4/ext4_jbd2.h +++ b/fs/ext4/ext4_jbd2.h @@ -104,6 +104,20 @@  #define EXT4_MAXQUOTAS_INIT_BLOCKS(sb) (MAXQUOTAS*EXT4_QUOTA_INIT_BLOCKS(sb))  #define EXT4_MAXQUOTAS_DEL_BLOCKS(sb) (MAXQUOTAS*EXT4_QUOTA_DEL_BLOCKS(sb)) +static inline int ext4_jbd2_credits_xattr(struct inode *inode) +{ +	int credits = EXT4_DATA_TRANS_BLOCKS(inode->i_sb); + +	/* +	 * In case of inline data, we may push out the data to a block, +	 * so we need to reserve credits for this eventuality +	 */ +	if (ext4_has_inline_data(inode)) +		credits += ext4_writepage_trans_blocks(inode) + 1; +	return credits; +} + +  /*   * Ext4 handle operation types -- for logging purposes   */  |