diff -urN a/fs/squashfs/zlib_wrapper.c b/fs/squashfs/zlib_wrapper.c
--- a/fs/squashfs/zlib_wrapper.c	2011-04-17 23:22:06.000000000 +0000
+++ b/fs/squashfs/zlib_wrapper.c	2011-04-17 23:32:07.761894330 +0000
@@ -35,7 +35,7 @@
 
 static void *zlib_init(struct squashfs_sb_info *dummy)
 {
-	z_stream *stream = kmalloc(sizeof(z_stream), GFP_KERNEL);
+	z_stream *stream = kmalloc(sizeof(z_stream), GFP_KERNEL|__GFP_REPEAT);
 	if (stream == NULL)
 		goto failed;
 	stream->workspace = vmalloc(zlib_inflate_workspacesize());
