Btrfs: remove BUG_ON() in compress_file_range()
PATCH 1/1 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 <[email protected]>
--- fs/btrfs/inode.c | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-)
fs/btrfs/inode.c +5 -1
@@ -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));
-- 1.7.3.1
Quoted 2 lines · Li Zefan
It's not a big deal if we fail to allocate the array, and instead of panic we can just give up compressing.
Makes sense.
Quoted 1 line
Signed-off-by Li Zefan <[email protected]>
Reviewed-by David Sterba <[email protected]>
Quoted 33 lines
--- fs/btrfs/inode.c | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-)fs/btrfs/inode.c +5
-3@@ -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)); -- 1.7.3.1 --To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html