diff --git a/fs/ext3/inode.c b/fs/ext3/inode.c
index 2d0afec..95cb0d1 100644
--- a/fs/ext3/inode.c
+++ b/fs/ext3/inode.c
@@ -795,10 +795,6 @@ static int ext3_splice_branch(handle_t *handle, struct inode *inode,
 	}
 
 	/* We are done with atomic stuff, now do the rest of housekeeping */
-
-	inode->i_ctime = CURRENT_TIME_SEC;
-	ext3_mark_inode_dirty(handle, inode);
-	/* ext3_mark_inode_dirty already updated i_sync_tid */
 	atomic_set(&ei->i_datasync_tid, handle->h_transaction->t_tid);
 
 	/* had we spliced it onto indirect block? */
@@ -819,9 +815,9 @@ static int ext3_splice_branch(handle_t *handle, struct inode *inode,
 	} else {
 		/*
 		 * OK, we spliced it into the inode itself on a direct block.
-		 * Inode was dirtied above.
 		 */
 		jbd_debug(5, "splicing direct\n");
+		ext3_mark_inode_dirty(handle, inode);
 	}
 	return err;
 
