From: Li Zefan Date: Thu, 8 Sep 2011 02:22:01 +0000 (+0800) Subject: Btrfs: remove BUG_ON() in compress_file_range() X-Git-Tag: v3.2-rc1~21^2~23^2~9 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=560f7d75457f86a43970aa413e334e394082dce4;p=~emulex%2Finfiniband.git Btrfs: remove BUG_ON() in compress_file_range() It's not a big deal if we fail to allocate the array, and instead of panic we can just give up compressing. Signed-off-by: Li Zefan --- diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index f12747c9447..81d4f68f35c 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c @@ -393,7 +393,10 @@ again: (BTRFS_I(inode)->flags & BTRFS_INODE_COMPRESS))) { WARN_ON(pages); pages = kzalloc(sizeof(struct page *) * nr_pages, GFP_NOFS); - BUG_ON(!pages); + if (!pages) { + /* just bail out to the uncompressed code */ + goto cont; + } if (BTRFS_I(inode)->force_compress) compress_type = BTRFS_I(inode)->force_compress; @@ -424,6 +427,7 @@ again: will_compress = 1; } } +cont: if (start == 0) { trans = btrfs_join_transaction(root); BUG_ON(IS_ERR(trans));