summaryrefslogtreecommitdiff
path: root/fs
diff options
context:
space:
mode:
authorChris Mason <chris.mason@oracle.com>2011-10-14 06:31:20 -0400
committerChris Mason <chris.mason@oracle.com>2011-11-06 03:03:47 -0500
commit1eae31e918972bbeefc119d23c1d67674f49a301 (patch)
treeb6c1df4d25699812a83f107187b407d53abeb82e /fs
parentcd354ad613a393424f85333ceed6b15e07fb94ae (diff)
downloadlinux-3.10-1eae31e918972bbeefc119d23c1d67674f49a301.tar.gz
linux-3.10-1eae31e918972bbeefc119d23c1d67674f49a301.tar.bz2
linux-3.10-1eae31e918972bbeefc119d23c1d67674f49a301.zip
Btrfs: make sure btrfs_remove_free_space doesn't leak EAGAIN
btrfs_remove_free_space needs to make sure to set ret back to a valid return value after setting it to EAGAIN, otherwise we return it to the callers. Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs')
-rw-r--r--fs/btrfs/free-space-cache.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/fs/btrfs/free-space-cache.c b/fs/btrfs/free-space-cache.c
index de205d59b74..f49475dfa95 100644
--- a/fs/btrfs/free-space-cache.c
+++ b/fs/btrfs/free-space-cache.c
@@ -1868,6 +1868,7 @@ again:
ctl->total_bitmaps--;
}
kmem_cache_free(btrfs_free_space_cachep, info);
+ ret = 0;
goto out_lock;
}
@@ -1875,7 +1876,8 @@ again:
unlink_free_space(ctl, info);
info->offset += bytes;
info->bytes -= bytes;
- link_free_space(ctl, info);
+ ret = link_free_space(ctl, info);
+ WARN_ON(ret);
goto out_lock;
}