replyStatus = HgfsReplyStatus(req);
result = HgfsStatusConvertToLinux(replyStatus);
+ LOG(4, (KERN_WARNING "VMware hgfs: HgfsDoWrite: res %u\n", result));
switch (result) {
case 0:
if (opUsed == HGFS_OP_WRITE_V3 || opUsed == HGFS_OP_WRITE_FAST_V4) {
*/
if (remainingCount) {
char *buffer = kmap(page) + pageTo;
+ LOG(6, (KERN_DEBUG "VMware hgfs: %s: zeroing last %Zu bytes\n",
+ __func__, remainingCount));
memset(buffer - remainingCount, 0, remainingCount);
kunmap(page);
}
*/
currentFileSize = compat_i_size_read(inode);
lastPageIndex = currentFileSize >> PAGE_CACHE_SHIFT;
+ LOG(4, (KERN_WARNING "VMware hgfs: %s: file size lpi %lu pi %lu\n",
+ __func__, lastPageIndex, page->index));
if (page->index > lastPageIndex) {
goto exit;
} else if (page->index == lastPageIndex) {
((pageFrom == 0) && (offset + pageTo) >= currentFileSize)) {
void *kaddr = compat_kmap_atomic(page);
- if (pageFrom) {
- memset(kaddr, 0, pageFrom);
- }
if (pageTo < PAGE_CACHE_SIZE) {
memset(kaddr + pageTo, 0, PAGE_CACHE_SIZE - pageTo);
}
void **clientData) // OUT: Opaque to pass to write_end, unused
{
pgoff_t index = pos >> PAGE_CACHE_SHIFT;
- unsigned pageFrom = pos & (PAGE_CACHE_SHIFT - 1);
- unsigned pageTo = pos + len;
+ unsigned pageFrom = pos & (PAGE_CACHE_SIZE - 1);
+ unsigned pageTo = pageFrom + len;
struct page *page;
LOG(6, (KERN_WARNING "VMware hgfs: %s: (%s/%s(%ld), %u@%lld)\n",