diff options
Diffstat (limited to 'fs/btrfs/inode.c')
-rw-r--r-- | fs/btrfs/inode.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index f12747c9447b..81d4f68f35c9 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c | |||
@@ -393,7 +393,10 @@ again: | |||
393 | (BTRFS_I(inode)->flags & BTRFS_INODE_COMPRESS))) { | 393 | (BTRFS_I(inode)->flags & BTRFS_INODE_COMPRESS))) { |
394 | WARN_ON(pages); | 394 | WARN_ON(pages); |
395 | pages = kzalloc(sizeof(struct page *) * nr_pages, GFP_NOFS); | 395 | pages = kzalloc(sizeof(struct page *) * nr_pages, GFP_NOFS); |
396 | BUG_ON(!pages); | 396 | if (!pages) { |
397 | /* just bail out to the uncompressed code */ | ||
398 | goto cont; | ||
399 | } | ||
397 | 400 | ||
398 | if (BTRFS_I(inode)->force_compress) | 401 | if (BTRFS_I(inode)->force_compress) |
399 | compress_type = BTRFS_I(inode)->force_compress; | 402 | compress_type = BTRFS_I(inode)->force_compress; |
@@ -424,6 +427,7 @@ again: | |||
424 | will_compress = 1; | 427 | will_compress = 1; |
425 | } | 428 | } |
426 | } | 429 | } |
430 | cont: | ||
427 | if (start == 0) { | 431 | if (start == 0) { |
428 | trans = btrfs_join_transaction(root); | 432 | trans = btrfs_join_transaction(root); |
429 | BUG_ON(IS_ERR(trans)); | 433 | BUG_ON(IS_ERR(trans)); |