summaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorNikolay Borisov <nborisov@suse.com>2017-11-01 11:32:18 +0200
committerDavid Sterba <dsterba@suse.com>2018-01-22 16:08:11 +0100
commit6b7d6e933433a43062ce9355a4126b59bd2519e3 (patch)
tree3ab8cffd9fc427cf6706f4f73573e7cd623ff75b /fs
parent47dba17171a76ea2a2a7153f9aa9f28579bfd350 (diff)
downloadlinux-stable-6b7d6e933433a43062ce9355a4126b59bd2519e3.tar.gz
linux-stable-6b7d6e933433a43062ce9355a4126b59bd2519e3.tar.bz2
linux-stable-6b7d6e933433a43062ce9355a4126b59bd2519e3.zip
btrfs: Move loop termination condition in while()
Fallocating a file in btrfs goes through several stages. The one before actually inserting the fallocated extents is to create a qgroup reservation, covering the desired range. To this end there is a loop in btrfs_fallocate which checks to see if there are holes in the fallocated range or !PREALLOC extents past EOF and if so create qgroup reservations for them. Unfortunately, the main condition of the loop is burried right at the end of its body rather than in the actual while statement which makes it non-obvious. Fix this by moving the condition in the while statement where it belongs. No functional changes. Signed-off-by: Nikolay Borisov <nborisov@suse.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'fs')
-rw-r--r--fs/btrfs/file.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c
index eb1bac7c8553..89fb9eff714f 100644
--- a/fs/btrfs/file.c
+++ b/fs/btrfs/file.c
@@ -2922,7 +2922,7 @@ static long btrfs_fallocate(struct file *file, int mode,
/* First, check if we exceed the qgroup limit */
INIT_LIST_HEAD(&reserve_list);
- while (1) {
+ while (cur_offset < alloc_end) {
em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, cur_offset,
alloc_end - cur_offset, 0);
if (IS_ERR(em)) {
@@ -2958,8 +2958,6 @@ static long btrfs_fallocate(struct file *file, int mode,
}
free_extent_map(em);
cur_offset = last_byte;
- if (cur_offset >= alloc_end)
- break;
}
/*