Mercurial > yaffs-ecoscentric
changeset 225:16f50fb54fc0
Add kmap for highmem access
| author | charles |
|---|---|
| date | Thu, 28 Aug 2008 03:42:11 +0100 |
| parents | 88c51f5947b9 |
| children | 77fffb9e9641 |
| files | yaffs_fs.c |
| diffstat | 1 files changed, 7 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/yaffs_fs.c +++ b/yaffs_fs.c @@ -714,13 +714,17 @@ static int yaffs_commit_write(struct fil unsigned to) { - void *addr = page_address(pg) + offset; + void *addr, *kva; + loff_t pos = (((loff_t) pg->index) << PAGE_CACHE_SHIFT) + offset; int nBytes = to - offset; int nWritten; unsigned spos = pos; unsigned saddr = (unsigned)addr; + + kva=kmap(pg); + addr = kva + offset; T(YAFFS_TRACE_OS, (KERN_DEBUG "yaffs_commit_write addr %x pos %x nBytes %d\n", saddr, @@ -739,6 +743,8 @@ static int yaffs_commit_write(struct fil SetPageUptodate(pg); } + kunmap(pg); + T(YAFFS_TRACE_OS, (KERN_DEBUG "yaffs_commit_write returning %d\n", nWritten == nBytes ? 0 : nWritten));
