diff --git a/fs/ext4/migrate.c b/fs/ext4/migrate.c
index a19a9661646ebfa87cf0813bd29dd7eda2f668f7..0be0467ae6dd295b4d4f7250e02cbba7c8d68142 100644
--- a/fs/ext4/migrate.c
+++ b/fs/ext4/migrate.c
@@ -662,8 +662,8 @@ int ext4_ind_migrate(struct inode *inode)
 	if (unlikely(ret2 && !ret))
 		ret = ret2;
 errout:
-	ext4_journal_stop(handle);
 	up_write(&EXT4_I(inode)->i_data_sem);
+	ext4_journal_stop(handle);
 out_unlock:
 	percpu_up_write(&sbi->s_writepages_rwsem);
 	return ret;