亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mmap.c

?? 內核是系統的心臟
?? C
字號:
/*
 *	fs/nfs/mmap.c	by Jon Tombs 15 Aug 1993
 *
 * This code is from
 *	linux/mm/mmap.c which was written by obz, Linus and Eric
 * and
 *	linux/mm/memory.c  by Linus Torvalds and others
 *
 *	Copyright (C) 1993
 *
 */
#include <linux/stat.h>
#include <linux/sched.h>
#include <linux/kernel.h>
#include <linux/mm.h>
#include <linux/shm.h>
#include <linux/errno.h>
#include <linux/mman.h>
#include <linux/string.h>
#include <linux/malloc.h>
#include <linux/nfs_fs.h>

#include <asm/segment.h>
#include <asm/system.h>

extern int share_page(struct vm_area_struct * area, struct task_struct * tsk,
	struct inode * inode, unsigned long address, unsigned long error_code,
	unsigned long newpage);

extern unsigned long put_page(struct task_struct * tsk,unsigned long page,
	unsigned long address,int prot);

static void nfs_file_mmap_nopage(int error_code, struct vm_area_struct * area,
				unsigned long address);

extern void file_mmap_free(struct vm_area_struct * area);
extern int file_mmap_share(struct vm_area_struct * from, struct vm_area_struct * to,
				unsigned long address);

struct vm_operations_struct nfs_file_mmap = {
	NULL,			/* open */
	file_mmap_free,		/* close */
	nfs_file_mmap_nopage,	/* nopage */
	NULL,			/* wppage */
	file_mmap_share,	/* share */
	NULL,			/* unmap */
};


/* This is used for a general mmap of a nfs file */
int nfs_mmap(struct inode * inode, struct file * file,
	unsigned long addr, size_t len, int prot, unsigned long off)
{
	struct vm_area_struct * mpnt;

	if (prot & PAGE_RW)	/* only PAGE_COW or read-only supported now */
		return -EINVAL;
	if (off & (inode->i_sb->s_blocksize - 1))
		return -EINVAL;
	if (!inode->i_sb || !S_ISREG(inode->i_mode))
		return -EACCES;
	if (!IS_RDONLY(inode)) {
		inode->i_atime = CURRENT_TIME;
		inode->i_dirt = 1;
	}

	mpnt = (struct vm_area_struct * ) kmalloc(sizeof(struct vm_area_struct), GFP_KERNEL);
	if (!mpnt)
		return -ENOMEM;

	unmap_page_range(addr, len);
	mpnt->vm_task = current;
	mpnt->vm_start = addr;
	mpnt->vm_end = addr + len;
	mpnt->vm_page_prot = prot;
	mpnt->vm_share = NULL;
	mpnt->vm_inode = inode;
	inode->i_count++;
	mpnt->vm_offset = off;
	mpnt->vm_ops = &nfs_file_mmap;
	insert_vm_struct(current, mpnt);
	merge_segments(current->mmap, NULL, NULL);
	return 0;
}


static void nfs_file_mmap_nopage(int error_code, struct vm_area_struct * area,
				unsigned long address)
{
	struct inode * inode = area->vm_inode;
	unsigned int clear;
	unsigned long page;
	unsigned long tmp;
	int n;
	int i;
	int pos;
	struct nfs_fattr fattr;

	address &= PAGE_MASK;
	pos = address - area->vm_start + area->vm_offset;

	page = get_free_page(GFP_KERNEL);
	if (share_page(area, area->vm_task, inode, address, error_code, page)) {
		++area->vm_task->min_flt;
		return;
	}

	++area->vm_task->maj_flt;
	if (!page) {
		oom(current);
		put_page(area->vm_task, BAD_PAGE, address, PAGE_PRIVATE);
		return;
	}

	clear = 0;
	if (address + PAGE_SIZE > area->vm_end) {
		clear = address + PAGE_SIZE - area->vm_end;
	}

	n = NFS_SERVER(inode)->rsize; /* what we can read in one go */

	for (i = 0; i < (PAGE_SIZE - clear); i += n) {
		int hunk, result;

		hunk = PAGE_SIZE - i;
		if (hunk > n)
			hunk = n;
		result = nfs_proc_read(NFS_SERVER(inode), NFS_FH(inode),
			pos, hunk, (char *) (page + i), &fattr);
		if (result < 0)
			break;
		pos += result;
		if (result < n) {
			i += result;
			break;
		}
	}

#ifdef doweneedthishere
	nfs_refresh_inode(inode, &fattr);
#endif

	if (!(error_code & PAGE_RW)) {
		if (share_page(area, area->vm_task, inode, address, error_code, page))
			return;
	}

	tmp = page + PAGE_SIZE;
	while (clear--) {
		*(char *)--tmp = 0;
	}
	if (put_page(area->vm_task,page,address,area->vm_page_prot))
		return;
	free_page(page);
	oom(current);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久久久精k8| 色综合夜色一区| 久久精品国产精品亚洲综合| 色综合久久精品| 亚洲一区在线观看网站| 欧美在线视频你懂得| 亚洲小说春色综合另类电影| 欧美日韩综合色| 亚洲国产另类精品专区| 4438x亚洲最大成人网| 蜜桃视频在线观看一区| 精品国产精品一区二区夜夜嗨| 精品在线一区二区三区| 亚洲欧洲精品成人久久奇米网| 国产精品一二三在| 国产精品动漫网站| 精品视频在线免费| 看片网站欧美日韩| 国产精品视频线看| 欧美性高清videossexo| 麻豆精品国产传媒mv男同| 国产午夜精品久久久久久免费视| 成人黄色免费短视频| 亚洲精品国产无天堂网2021 | 奇米色一区二区| 欧美电视剧在线看免费| 99视频在线精品| 日韩高清在线一区| 久久色视频免费观看| 91视视频在线观看入口直接观看www| 欧美中文字幕一二三区视频| 日韩1区2区3区| 日本精品裸体写真集在线观看| 免费日韩伦理电影| 国产精品视频第一区| 欧美午夜精品久久久久久超碰 | 日韩av电影免费观看高清完整版 | 亚洲天堂成人网| 欧美亚洲动漫制服丝袜| 黑人巨大精品欧美一区| 亚洲精品中文在线| 精品久久五月天| 在线免费亚洲电影| 国产精品一二三区在线| 日韩和欧美的一区| 国产精品午夜久久| 日韩精品中文字幕一区| 欧美亚洲自拍偷拍| 中文字幕亚洲成人| 欧美tickle裸体挠脚心vk| 色琪琪一区二区三区亚洲区| 国产美女主播视频一区| 天堂一区二区在线免费观看| 中文字幕日本不卡| 久久精品一区四区| 日韩午夜在线观看视频| 五月天亚洲婷婷| 亚洲欧美日韩在线| 国产精品视频麻豆| 久久九九久久九九| 欧美成人一区二区| 欧美日韩国产在线播放网站| 99re热视频这里只精品| 国产夫妻精品视频| 狠狠色狠狠色综合| 男女激情视频一区| 亚洲成人动漫一区| 亚洲午夜激情av| 亚洲黄色小说网站| 国产精品一区免费视频| 悠悠色在线精品| 色综合咪咪久久| 99视频有精品| www.在线成人| 99国产精品久久久久| 国产成人午夜视频| 国产成人免费xxxxxxxx| 国产一区二区电影| 国产风韵犹存在线视精品| 国产一区二区三区在线观看免费| 精品一区二区三区在线观看国产| 日本v片在线高清不卡在线观看| 五月天婷婷综合| 香蕉成人啪国产精品视频综合网| 亚洲成人激情社区| 五月天一区二区| 美腿丝袜亚洲一区| 蜜臀久久99精品久久久久宅男 | 国产成人综合网| 国产成人综合在线播放| 粉嫩嫩av羞羞动漫久久久 | 美女视频黄 久久| 老司机精品视频一区二区三区| 狠狠色丁香久久婷婷综| 国产·精品毛片| 99精品视频中文字幕| 在线精品视频小说1| 欧美欧美欧美欧美| 日韩三级电影网址| 国产日韩欧美一区二区三区乱码| 亚洲视频狠狠干| 中文字幕亚洲成人| 午夜精品久久久久久久久久 | 久久久久久日产精品| 久久九九影视网| 亚洲乱码一区二区三区在线观看| 亚洲一级二级在线| 久久国产免费看| 久久se精品一区精品二区| 免费成人在线视频观看| 国产成人精品免费| 一本大道综合伊人精品热热| 欧美美女黄视频| 久久久久青草大香线综合精品| 自拍偷拍亚洲激情| 日产精品久久久久久久性色| 国产乱国产乱300精品| 色94色欧美sute亚洲线路二| 日韩一区二区免费在线电影| 国产欧美一区二区三区沐欲| 欧美日韩精品久久久| 2023国产精品| 亚洲欧美日韩成人高清在线一区| 婷婷开心久久网| 高清国产一区二区| 欧美区在线观看| 国产精品免费丝袜| 日韩**一区毛片| 色综合亚洲欧洲| 国产午夜精品一区二区三区四区| 亚洲国产乱码最新视频| 成人免费av资源| 欧美www视频| 亚洲一区二区在线免费看| 国产在线精品一区二区三区不卡| 亚洲综合一二三区| 亚洲婷婷在线视频| 久久99精品久久久久久久久久久久| caoporn国产精品| 精品国产免费人成电影在线观看四季| 亚洲人成亚洲人成在线观看图片 | 国产在线视频精品一区| 欧美熟乱第一页| 1000精品久久久久久久久| 久久99精品国产麻豆不卡| 欧美性感一区二区三区| 日韩毛片视频在线看| 国产精品66部| 精品美女一区二区| 日本午夜精品一区二区三区电影| 91老司机福利 在线| 国产精品嫩草99a| 国产精品一品视频| 在线影视一区二区三区| 中文字幕欧美区| 国产在线一区二区综合免费视频| 欧美日韩视频专区在线播放| 一本色道亚洲精品aⅴ| 国产精品日产欧美久久久久| 国产呦萝稀缺另类资源| 精品人在线二区三区| 奇米四色…亚洲| 欧美一区二区三区视频在线| 午夜精品爽啪视频| 欧美日本在线视频| 亚洲成人福利片| 欧美日产在线观看| 天堂av在线一区| 在线播放91灌醉迷j高跟美女| 亚洲一区在线播放| 欧美在线视频不卡| 亚洲网友自拍偷拍| 在线视频欧美精品| 亚洲综合自拍偷拍| 欧美日韩色一区| 亚洲高清免费视频| 欧美喷水一区二区| 老司机午夜精品| 26uuu国产电影一区二区| 精一区二区三区| 中文字幕乱码一区二区免费| 成人aa视频在线观看| 亚洲色图另类专区| 91成人在线观看喷潮| 日日噜噜夜夜狠狠视频欧美人| 91精品国产欧美一区二区| 久久成人综合网| 亚洲国产高清aⅴ视频| 日本韩国精品在线| 亚洲1区2区3区4区| 精品国产99国产精品| 成人综合日日夜夜| 一区二区三区日本| 3d动漫精品啪啪| 国产成人午夜99999| 亚洲激情图片一区| 日韩精品自拍偷拍| 9人人澡人人爽人人精品| 欧美一区在线视频| 国产成人免费在线视频|