[3.13.y.z extended stable] Patch "ext4: fix mmap data corruption when blocksize < pagesize" has been added to staging queue
Kamal Mostafa
kamal at canonical.com
Fri Oct 31 20:53:34 UTC 2014
This is a note to let you know that I have just added a patch titled
ext4: fix mmap data corruption when blocksize < pagesize
to the linux-3.13.y-queue branch of the 3.13.y.z extended stable tree
which can be found at:
http://kernel.ubuntu.com/git?p=ubuntu/linux.git;a=shortlog;h=refs/heads/linux-3.13.y-queue
This patch is scheduled to be released in version 3.13.11.11.
If you, or anyone else, feels it should not be added to this tree, please
reply to this email.
For more information about the 3.13.y.z tree, see
https://wiki.ubuntu.com/Kernel/Dev/ExtendedStable
Thanks.
-Kamal
------
>From bb47b715bafad0dc7b879fab399f32a7d24f2600 Mon Sep 17 00:00:00 2001
From: Jan Kara <jack at suse.cz>
Date: Wed, 1 Oct 2014 21:49:46 -0400
Subject: ext4: fix mmap data corruption when blocksize < pagesize
commit d6320cbfc92910a3e5f10c42d98c231c98db4f60 upstream.
Use truncate_isize_extended() when hole is being created in a file so that
->page_mkwrite() will get called for the partial tail page if it is
mmaped (see the first patch in the series for details).
Signed-off-by: Jan Kara <jack at suse.cz>
Signed-off-by: Theodore Ts'o <tytso at mit.edu>
Signed-off-by: Kamal Mostafa <kamal at canonical.com>
---
fs/ext4/inode.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
index 2d782aa..fd6501e3 100644
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
@@ -4656,8 +4656,12 @@ int ext4_setattr(struct dentry *dentry, struct iattr *attr)
ext4_orphan_del(NULL, inode);
goto err_out;
}
- } else
+ } else {
+ loff_t oldsize = inode->i_size;
+
i_size_write(inode, attr->ia_size);
+ pagecache_isize_extended(inode, oldsize, inode->i_size);
+ }
/*
* Blocks are going to be removed from the inode. Wait
--
1.9.1
More information about the kernel-team
mailing list