summaryrefslogtreecommitdiffstats
path: root/fs/xfs/libxfs/xfs_bit.c
diff options
context:
space:
mode:
authorJia He <hejianet@gmail.com>2016-01-04 06:10:19 +0100
committerDave Chinner <david@fromorbit.com>2016-01-04 06:10:19 +0100
commit1d4292bfdc77f4f7c520064be15d0c46bd025fd2 (patch)
tree0caa65a6a56e13d269503b38c211aafaef6cad0b /fs/xfs/libxfs/xfs_bit.c
parentLinux 4.4-rc8 (diff)
downloadlinux-1d4292bfdc77f4f7c520064be15d0c46bd025fd2.tar.xz
linux-1d4292bfdc77f4f7c520064be15d0c46bd025fd2.zip
libxfs: Optimize the loop for xfs_bitmap_empty
If there is any non zero bit in a long bitmap, it can jump out of the loop and finish the function as soon as possible. Signed-off-by: Jia He <hejianet@gmail.com> Reviewed-by: Brian Foster <bfoster@redhat.com> Signed-off-by: Dave Chinner <david@fromorbit.com>
Diffstat (limited to 'fs/xfs/libxfs/xfs_bit.c')
-rw-r--r--fs/xfs/libxfs/xfs_bit.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/fs/xfs/libxfs/xfs_bit.c b/fs/xfs/libxfs/xfs_bit.c
index 0e8885a59646..0a94cce5ea35 100644
--- a/fs/xfs/libxfs/xfs_bit.c
+++ b/fs/xfs/libxfs/xfs_bit.c
@@ -32,13 +32,13 @@ int
xfs_bitmap_empty(uint *map, uint size)
{
uint i;
- uint ret = 0;
for (i = 0; i < size; i++) {
- ret |= map[i];
+ if (map[i] != 0)
+ return 0;
}
- return (ret == 0);
+ return 1;
}
/*