diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c
index 9abd6cfe3e5ad706f094528a61333b04652212bf..e3c294372db86a20799b47b48801b8da6f006d7c 100644
--- a/fs/f2fs/file.c
+++ b/fs/f2fs/file.c
@@ -3520,8 +3520,10 @@ static ssize_t f2fs_file_write_iter(struct kiocb *iocb, struct iov_iter *from)
 		goto out;
 	}
 
-	if (!f2fs_is_compress_backend_ready(inode))
-		return -EOPNOTSUPP;
+	if (!f2fs_is_compress_backend_ready(inode)) {
+		ret = -EOPNOTSUPP;
+		goto out;
+	}
 
 	if (iocb->ki_flags & IOCB_NOWAIT) {
 		if (!inode_trylock(inode)) {