|
http://www.cnkernel.org/ static void shmem_swp_set(struct shmem_inode_info *info, swp_entry_t *entry, unsigned long value) { long incdec = value? 1: -1; entry->val = value; info->swapped += incdec; if ((unsigned long)(entry - info->i_direct) >= SHMEM_NR_DIRECT) { struct page *page = kmap_atomic_to_page(entry); set_page_private(page, page_private(page) + incdec); } } /* * shmem_swp_alloc - get the position of the swap entry for the page. * If it does not exist allocate the entry. * @info: info structure for the inode * @index: index of the page to find * @sgp: check and recheck i_size? skip allocation? */ static swp_entry_t *shmem_swp_alloc(struct shmem_inode_info *info, unsigned long index, enum sgp_type sgp) { struct inode *inode = &info->vfs_inode; |
