#include <linux/rmap.h>
#include <linux/module.h>
#include <linux/syscalls.h>
+#include <linux/vs_base.h>
#include <linux/vs_memory.h>
#include <asm/mmu_context.h>
set_page_dirty(page);
page_remove_rmap(page);
page_cache_release(page);
- // dec_mm_counter(mm, file_rss);
}
} else {
if (!pte_file(pte))
* caller about it.
*/
err = -EINVAL;
- if (vma->vm_file) {
- inode = vma->vm_file->f_mapping->host;
- size = (i_size_read(inode) + PAGE_CACHE_SIZE - 1) >> PAGE_CACHE_SHIFT;
- if (!page->mapping || page->index >= size)
- goto unlock;
- err = -ENOMEM;
- if (page_mapcount(page) > INT_MAX/2)
- goto unlock;
- if (!vx_rsspages_avail(mm, 1))
- goto unlock;
- }
+ inode = vma->vm_file->f_mapping->host;
+ size = (i_size_read(inode) + PAGE_CACHE_SIZE - 1) >> PAGE_CACHE_SHIFT;
+ if (!page->mapping || page->index >= size)
+ goto unlock;
+ err = -ENOMEM;
+ if (page_mapcount(page) > INT_MAX/2)
+ goto unlock;
+ if (!vx_rsspages_avail(mm, 1))
+ goto unlock;
if (pte_none(*pte) || !zap_pte(mm, vma, addr, pte))
inc_mm_counter(mm, file_rss);