summaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorLiu Bo <liubo2009@cn.fujitsu.com>2012-01-26 15:01:12 -0500
committerChris Mason <chris.mason@oracle.com>2012-01-26 15:01:12 -0500
commit7ec31b548a17f773ab6289e795ed3a6820e8b56e (patch)
treec0c738e7c27e4ac6185f02acd76de64986218906 /fs
parent0b485143d835c019cddc45f46e4b3873dcc9aa4e (diff)
downloadlinux-stable-7ec31b548a17f773ab6289e795ed3a6820e8b56e.tar.gz
linux-stable-7ec31b548a17f773ab6289e795ed3a6820e8b56e.tar.bz2
linux-stable-7ec31b548a17f773ab6289e795ed3a6820e8b56e.zip
Btrfs: do not defrag a file partially
xfstests 218 complains that btrfs defrags a file partially: After: 1 Write backwards sync, but contiguous - should defrag to 1 extent Before: 10 -After: 1 +After: 2 To fix this, we need to set max_to_defrag count properly. Signed-off-by: Liu Bo <liubo2009@cn.fujitsu.com> Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs')
-rw-r--r--fs/btrfs/ioctl.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c
index 6834be4c8709..0b06a5ca8afc 100644
--- a/fs/btrfs/ioctl.c
+++ b/fs/btrfs/ioctl.c
@@ -1066,7 +1066,7 @@ int btrfs_defrag_file(struct inode *inode, struct file *file,
i = range->start >> PAGE_CACHE_SHIFT;
}
if (!max_to_defrag)
- max_to_defrag = last_index;
+ max_to_defrag = last_index + 1;
/*
* make writeback starts from i, so the defrag range can be