X-Git-Url: http://ftp.safe.ca/?a=blobdiff_plain;f=mm%2Ffilemap_xip.c;h=1888b2d71bb8d78a1a17ec408d1865a7919e76ea;hb=58355c7876a0754377c37c8af948b4cd423410e2;hp=bf54f8a2cf1df63172706477d666f8bbea6b0268;hpb=3255aa2eb636a508fc82a73fabbb8aaf2ff23c0f;p=safe%2Fjmp%2Flinux-2.6 diff --git a/mm/filemap_xip.c b/mm/filemap_xip.c index bf54f8a..1888b2d 100644 --- a/mm/filemap_xip.c +++ b/mm/filemap_xip.c @@ -89,8 +89,8 @@ do_xip_mapping_read(struct address_space *mapping, } } nr = nr - offset; - if (nr > len) - nr = len; + if (nr > len - copied) + nr = len - copied; error = mapping->a_ops->get_xip_mem(mapping, index, 0, &xip_mem, &xip_pfn); @@ -296,7 +296,7 @@ out: } } -static struct vm_operations_struct xip_file_vm_ops = { +static const struct vm_operations_struct xip_file_vm_ops = { .fault = xip_file_fault, }; @@ -354,7 +354,7 @@ __xip_file_write(struct file *filp, const char __user *buf, break; copied = bytes - - __copy_from_user_nocache(xip_mem + offset, buf, bytes, bytes); + __copy_from_user_nocache(xip_mem + offset, buf, bytes); if (likely(copied > 0)) { status = copied;