summaryrefslogtreecommitdiff
path: root/fs/ext4
diff options
context:
space:
mode:
authorYongqiang Yang <xiaoqiangnk@gmail.com>2011-10-31 22:04:38 (GMT)
committerTheodore Ts'o <tytso@mit.edu>2011-10-31 22:04:38 (GMT)
commitedb5ac8993e25143f6af1ab143843a65c52e2a15 (patch)
treed7ddf9603bcb2c540d5c240102a0dafc10f42eef /fs/ext4
parent5129d05fda57be13f434dbe8536de39a6c25496d (diff)
downloadlinux-edb5ac8993e25143f6af1ab143843a65c52e2a15.tar.xz
ext4: let ext4_discard_partial_buffers handle unaligned range correctly
As comment says, we should handle unaligned range rather than aligned one. This fixes a bug found by running xfstests #91. Signed-off-by: Yongqiang Yang <xiaoqiangnk@gmail.com>
Diffstat (limited to 'fs/ext4')
-rw-r--r--fs/ext4/inode.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
index 5fcef98..de05e86 100644
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
@@ -3206,8 +3206,8 @@ int ext4_discard_partial_page_buffers_no_lock(handle_t *handle,
* to be updated with the contents of the block before
* we write the zeros on top of it.
*/
- if (!(from & (blocksize - 1)) ||
- !((from + length) & (blocksize - 1))) {
+ if ((from & (blocksize - 1)) ||
+ ((from + length) & (blocksize - 1))) {
create_empty_buffers(page, blocksize, 0);
} else {
/*