summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYongqiang Yang <xiaoqiangnk@gmail.com>2011-11-01 02:04:38 +0400
committerTheodore Ts'o <tytso@mit.edu>2011-11-01 02:04:38 +0400
commitedb5ac8993e25143f6af1ab143843a65c52e2a15 (patch)
treed7ddf9603bcb2c540d5c240102a0dafc10f42eef
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>
-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 5fcef98f98e5..de05e86f1993 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 {
/*