diff options
author | Christoph Hellwig <hch@infradead.org> | 2008-05-19 16:34:42 +1000 |
---|---|---|
committer | Lachlan McIlroy <lachlan@redback.melbourne.sgi.com> | 2008-05-23 18:12:49 +1000 |
commit | 6ab455eeaff6893cd06da33843e840d888cdc04a (patch) | |
tree | e7744d1580647ca3b08e829bcf976f2f60c49986 /fs/drop_caches.c | |
parent | c8f5f12e46f079a954d4f7163ba59dadee08ca26 (diff) | |
download | op-kernel-dev-6ab455eeaff6893cd06da33843e840d888cdc04a.zip op-kernel-dev-6ab455eeaff6893cd06da33843e840d888cdc04a.tar.gz |
[XFS] Fix memory corruption with small buffer reads
When we have multiple buffers in a single page for a blocksize == pagesize
filesystem we might overwrite the page contents if two callers hit it
shortly after each other. To prevent that we need to keep the page locked
until I/O is completed and the page marked uptodate.
Thanks to Eric Sandeen for triaging this bug and finding a reproducible
testcase and Dave Chinner for additional advice.
This should fix kernel.org bz #10421.
Tested-by: Eric Sandeen <sandeen@sandeen.net>
SGI-PV: 981813
SGI-Modid: xfs-linux-melb:xfs-kern:31173a
Signed-off-by: Christoph Hellwig <hch@infradead.org>
Signed-off-by: David Chinner <dgc@sgi.com>
Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
Diffstat (limited to 'fs/drop_caches.c')
0 files changed, 0 insertions, 0 deletions