summaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorMark Fasheh <mfasheh@suse.com>2011-07-13 10:59:59 -0700
committerMark Fasheh <mfasheh@suse.com>2011-07-25 14:35:15 -0700
commit38a1a919535742af677303271eb4ff731547b706 (patch)
treebfefad00f864e8239b94607a3d712200fd825eaa /fs
parent92b8e897f6e7ba4aa10037ebd8186f85d39330d0 (diff)
downloadlinux-stable-38a1a919535742af677303271eb4ff731547b706.tar.gz
linux-stable-38a1a919535742af677303271eb4ff731547b706.tar.bz2
linux-stable-38a1a919535742af677303271eb4ff731547b706.zip
btrfs: don't BUG_ON allocation errors in btrfs_drop_snapshot
In addition to properly handling allocation failure from btrfs_alloc_path, I also fixed up the kzalloc error handling code immediately below it. Signed-off-by: Mark Fasheh <mfasheh@suse.com>
Diffstat (limited to 'fs')
-rw-r--r--fs/btrfs/extent-tree.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c
index f6af4236e59b..6bce721e7bbc 100644
--- a/fs/btrfs/extent-tree.c
+++ b/fs/btrfs/extent-tree.c
@@ -6272,10 +6272,14 @@ int btrfs_drop_snapshot(struct btrfs_root *root,
int level;
path = btrfs_alloc_path();
- BUG_ON(!path);
+ if (!path)
+ return -ENOMEM;
wc = kzalloc(sizeof(*wc), GFP_NOFS);
- BUG_ON(!wc);
+ if (!wc) {
+ btrfs_free_path(path);
+ return -ENOMEM;
+ }
trans = btrfs_start_transaction(tree_root, 0);
BUG_ON(IS_ERR(trans));