ext4: let ext4_discard_partial_buffers handle unaligned range correctly
authorYongqiang Yang <xiaoqiangnk@gmail.com>
Mon, 31 Oct 2011 22:04:38 +0000 (18:04 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Mon, 31 Oct 2011 22:04:38 +0000 (18:04 -0400)
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>
fs/ext4/inode.c

index 5fcef98..de05e86 100644 (file)
@@ -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 {
                        /*