Unverified Commit ad51fadf authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files

!11433 ext4: Track data blocks freeing operation in journal

parents 93d17988 42b8645e
Loading
Loading
Loading
Loading
+2 −7
Original line number Diff line number Diff line
@@ -11,18 +11,13 @@ int ext4_inode_journal_mode(struct inode *inode)
{
	if (EXT4_JOURNAL(inode) == NULL)
		return EXT4_INODE_WRITEBACK_DATA_MODE;	/* writeback */
	/*
	 * Ordered mode is no longer needed for the inode that use the
	 * iomap path, always use writeback mode.
	 */
	if (ext4_test_inode_state(inode, EXT4_STATE_BUFFERED_IOMAP))
		return EXT4_INODE_WRITEBACK_DATA_MODE;	/* writeback */
	/* We do not support data journalling with delayed allocation */
	if (!S_ISREG(inode->i_mode) ||
	    ext4_test_inode_flag(inode, EXT4_INODE_EA_INODE) ||
	    test_opt(inode->i_sb, DATA_FLAGS) == EXT4_MOUNT_JOURNAL_DATA ||
	    (ext4_test_inode_flag(inode, EXT4_INODE_JOURNAL_DATA) &&
	    !test_opt(inode->i_sb, DELALLOC))) {
	    !test_opt(inode->i_sb, DELALLOC) &&
	    !ext4_test_inode_state(inode, EXT4_STATE_BUFFERED_IOMAP))) {
		/* We do not support data journalling for encrypted data */
		if (S_ISREG(inode->i_mode) && IS_ENCRYPTED(inode))
			return EXT4_INODE_ORDERED_DATA_MODE;  /* ordered */
+7 −0
Original line number Diff line number Diff line
@@ -467,6 +467,13 @@ static inline int ext4_should_journal_data(struct inode *inode)

static inline int ext4_should_order_data(struct inode *inode)
{
	/*
	 * Ordered mode is no longer needed for the inode that use the
	 * iomap path, always use writeback mode.
	 */
	if (ext4_test_inode_state(inode, EXT4_STATE_BUFFERED_IOMAP))
		return 0;	/* writeback */

	return ext4_inode_journal_mode(inode) & EXT4_INODE_ORDERED_DATA_MODE;
}