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>
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 @@
* 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 {
/*