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

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

?? inode.c

?? 帶中文注釋的linux 0.11源碼 很好
?? C
?? 第 1 頁 / 共 2 頁
字號:
    {      inode->i_count--;      return;    }// 如果是塊設備文件的i 節點,此時邏輯塊字段0 中是設備號,則刷新該設備。并等待i 節點解鎖。  if (S_ISBLK (inode->i_mode))    {      sync_dev (inode->i_zone[0]);      wait_on_inode (inode);    }repeat:// 如果i 節點的引用計數大于1,則遞減1。  if (inode->i_count > 1)    {      inode->i_count--;      return;    }// 如果i 節點的鏈接數為0,則釋放該i 節點的所有邏輯塊,并釋放該i 節點。  if (!inode->i_nlinks)    {      truncate (inode);      free_inode (inode);      return;    }// 如果該i 節點已作過修改,則更新該i 節點,并等待該i 節點解鎖。  if (inode->i_dirt)    {      write_inode (inode);	/* we can sleep - so do again */      wait_on_inode (inode);      goto repeat;    }// i 節點引用計數遞減1。  inode->i_count--;  return;}//// 從i 節點表(inode_table)中獲取一個空閑i 節點項。// 尋找引用計數count 為0 的i 節點,并將其寫盤后清零,返回其指針。struct m_inode *get_empty_inode (void){  struct m_inode *inode;  static struct m_inode *last_inode = inode_table;	// last_inode 指向i 節點表第一項。  int i;  do    {// 掃描i 節點表。      inode = NULL;      for (i = NR_INODE; i; i--)	{// 如果last_inode 已經指向i 節點表的最后1 項之后,則讓其重新指向i 節點表開始處。	  if (++last_inode >= inode_table + NR_INODE)	    last_inode = inode_table;// 如果last_inode 所指向的i 節點的計數值為0,則說明可能找到空閑i 節點項。讓inode 指向// 該i 節點。如果該i 節點的已修改標志和鎖定標志均為0,則我們可以使用該i 節點,于是退出循環。	  if (!last_inode->i_count)	    {	      inode = last_inode;	      if (!inode->i_dirt && !inode->i_lock)		break;	    }	}// 如果沒有找到空閑i 節點(inode=NULL),則將整個i 節點表打印出來供調試使用,并死機。      if (!inode)	{	  for (i = 0; i < NR_INODE; i++)	    printk ("%04x: %6d\t", inode_table[i].i_dev,		    inode_table[i].i_num);	  panic ("No free inodes in mem");	}// 等待該i 節點解鎖(如果又被上鎖的話)。      wait_on_inode (inode);// 如果該i 節點已修改標志被置位的話,則將該i 節點刷新,并等待該i 節點解鎖。      while (inode->i_dirt)	{	  write_inode (inode);	  wait_on_inode (inode);	}    }  while (inode->i_count);	// 如果i 節點又被其它占用的話,則重新尋找空閑i 節點。// 已找到空閑i 節點項。則將該i 節點項內容清零,并置引用標志為1,返回該i 節點指針。  memset (inode, 0, sizeof (*inode));  inode->i_count = 1;  return inode;}//// 獲取管道節點。返回為i 節點指針(如果是NULL 則失敗)。// 首先掃描i 節點表,尋找一個空閑i 節點項,然后取得一頁空閑內存供管道使用。// 然后將得到的i 節點的引用計數置為2(讀者和寫者),初始化管道頭和尾,置i 節點的管道類型表示。struct m_inode *get_pipe_inode (void){  struct m_inode *inode;  if (!(inode = get_empty_inode ()))	// 如果找不到空閑i 節點則返回NULL。    return NULL;  if (!(inode->i_size = get_free_page ()))    {				// 節點的i_size 字段指向緩沖區。      inode->i_count = 0;	// 如果已沒有空閑內存,則      return NULL;		// 釋放該i 節點,并返回NULL。    }  inode->i_count = 2;		/* sum of readers/writers *//* 讀/寫兩者總計 */  PIPE_HEAD (*inode) = PIPE_TAIL (*inode) = 0;	// 復位管道頭尾指針。  inode->i_pipe = 1;		// 置節點為管道使用的標志。  return inode;			// 返回i 節點指針。}//// 從設備上讀取指定節點號的i 節點。// nr - i 節點號。struct m_inode *iget (int dev, int nr){  struct m_inode *inode, *empty;  if (!dev)    panic ("iget with dev==0");// 從i 節點表中取一個空閑i 節點。  empty = get_empty_inode ();// 掃描i 節點表。尋找指定節點號的i 節點。并遞增該節點的引用次數。  inode = inode_table;  while (inode < NR_INODE + inode_table)    {// 如果當前掃描的i 節點的設備號不等于指定的設備號或者節點號不等于指定的節點號,則繼續掃描。      if (inode->i_dev != dev || inode->i_num != nr)	{	  inode++;	  continue;	}// 找到指定設備號和節點號的i 節點,等待該節點解鎖(如果已上鎖的話)。      wait_on_inode (inode);// 在等待該節點解鎖的階段,節點表可能會發生變化,所以再次判斷,如果發生了變化,則再次重新// 掃描整個i 節點表。      if (inode->i_dev != dev || inode->i_num != nr)	{	  inode = inode_table;	  continue;	}// 將該i 節點引用計數增1。      inode->i_count++;      if (inode->i_mount)	{	  int i;// 如果該i 節點是其它文件系統的安裝點,則在超級塊表中搜尋安裝在此i 節點的超級塊。如果沒有// 找到,則顯示出錯信息,并釋放函數開始獲取的空閑節點,返回該i 節點指針。	  for (i = 0; i < NR_SUPER; i++)	    if (super_block[i].s_imount == inode)	      break;	  if (i >= NR_SUPER)	    {	      printk ("Mounted inode hasn't got sb\n");	      if (empty)		iput (empty);	      return inode;	    }// 將該i 節點寫盤。從安裝在此i 節點文件系統的超級塊上取設備號,并令i 節點號為1。然后重新// 掃描整個i 節點表,取該被安裝文件系統的根節點。	  iput (inode);	  dev = super_block[i].s_dev;	  nr = ROOT_INO;	  inode = inode_table;	  continue;	}// 已經找到相應的i 節點,因此放棄臨時申請的空閑節點,返回該找到的i 節點。      if (empty)	iput (empty);      return inode;    }// 如果在i 節點表中沒有找到指定的i 節點,則利用前面申請的空閑i 節點在i 節點表中建立該節點。// 并從相應設備上讀取該i 節點信息。返回該i 節點。  if (!empty)    return (NULL);  inode = empty;  inode->i_dev = dev;  inode->i_num = nr;  read_inode (inode);  return inode;}//// 從設備上讀取指定i 節點的信息到內存中(緩沖區中)。static voidread_inode (struct m_inode *inode){  struct super_block *sb;  struct buffer_head *bh;  int block;// 首先鎖定該i 節點,取該節點所在設備的超級塊。  lock_inode (inode);  if (!(sb = get_super (inode->i_dev)))    panic ("trying to read inode without dev");// 該i 節點所在的邏輯塊號 = (啟動塊+超級塊) + i 節點位圖占用的塊數 + 邏輯塊位圖占用的塊數 +// (i 節點號-1)/每塊含有的i 節點數。  block = 2 + sb->s_imap_blocks + sb->s_zmap_blocks +    (inode->i_num - 1) / INODES_PER_BLOCK;// 從設備上讀取該i 節點所在的邏輯塊,并將該inode 指針指向對應i 節點信息。  if (!(bh = bread (inode->i_dev, block)))    panic ("unable to read i-node block");  *(struct d_inode *) inode =    ((struct d_inode *) bh->b_data)[(inode->i_num - 1) % INODES_PER_BLOCK];// 最后釋放讀入的緩沖區,并解鎖該i 節點。  brelse (bh);  unlock_inode (inode);}//// 將指定i 節點信息寫入設備(寫入緩沖區相應的緩沖塊中,待緩沖區刷新時會寫入盤中)。static voidwrite_inode (struct m_inode *inode){  struct super_block *sb;  struct buffer_head *bh;  int block;// 首先鎖定該i 節點,如果該i 節點沒有被修改過或者該i 節點的設備號等于零,則解鎖該i 節點,// 并退出。  lock_inode (inode);  if (!inode->i_dirt || !inode->i_dev)    {      unlock_inode (inode);      return;    }// 獲取該i 節點的超級塊。  if (!(sb = get_super (inode->i_dev)))    panic ("trying to write inode without device");// 該i 節點所在的邏輯塊號 = (啟動塊+超級塊) + i 節點位圖占用的塊數 + 邏輯塊位圖占用的塊數 +// (i 節點號-1)/每塊含有的i 節點數。  block = 2 + sb->s_imap_blocks + sb->s_zmap_blocks +    (inode->i_num - 1) / INODES_PER_BLOCK;// 從設備上讀取該i 節點所在的邏輯塊。  if (!(bh = bread (inode->i_dev, block)))    panic ("unable to read i-node block");// 將該i 節點信息復制到邏輯塊對應該i 節點的項中。  ((struct d_inode *) bh->b_data)    [(inode->i_num - 1) % INODES_PER_BLOCK] = *(struct d_inode *) inode;// 置緩沖區已修改標志,而i 節點修改標志置零。然后釋放該含有i 節點的緩沖區,并解鎖該i 節點。  bh->b_dirt = 1;  inode->i_dirt = 0;  brelse (bh);  unlock_inode (inode);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99re这里只有精品6| 国产精品一线二线三线| 色欲综合视频天天天| 一区在线观看免费| 国产成人自拍在线| 欧美极品少妇xxxxⅹ高跟鞋| 国产精品正在播放| 久久久久国产精品免费免费搜索| 麻豆成人久久精品二区三区小说| 91精品国产综合久久精品| 视频一区欧美精品| 精品日韩在线观看| 国产高清成人在线| 亚洲成a人v欧美综合天堂| 9久草视频在线视频精品| 中文字幕国产一区二区| 91麻豆精品视频| 亚洲成人激情自拍| 精品国产乱码久久久久久久| 国产成都精品91一区二区三| 亚洲欧美日韩人成在线播放| 在线视频国内自拍亚洲视频| 欧美aa在线视频| 久久精品亚洲麻豆av一区二区| gogogo免费视频观看亚洲一| 亚洲黄色尤物视频| 精品福利av导航| www.色精品| 亚洲第一狼人社区| 久久亚区不卡日本| 欧美日韩中字一区| 国产精品91一区二区| 亚洲国产日韩在线一区模特| 欧美mv日韩mv国产网站| 91欧美激情一区二区三区成人| 天堂久久久久va久久久久| 亚洲国产成人自拍| 欧美日韩高清一区二区| 东方欧美亚洲色图在线| 午夜日韩在线电影| 亚洲私人影院在线观看| 精品三级在线观看| 制服丝袜国产精品| 色综合av在线| av在线这里只有精品| 91国偷自产一区二区开放时间 | 91麻豆精品国产自产在线观看一区| 国产精品资源网站| 久久精品国产免费看久久精品| 亚洲三级在线看| 久久黄色级2电影| 亚洲高清免费视频| 自拍偷拍亚洲激情| 中文字幕av一区二区三区| 久久亚洲精品国产精品紫薇| 欧美一区二区三区四区久久| 欧美色大人视频| 欧美亚洲综合色| 日本黄色一区二区| 91在线高清观看| 91香蕉视频mp4| 91麻豆文化传媒在线观看| 91在线精品秘密一区二区| 成人久久视频在线观看| 风间由美一区二区三区在线观看| 国产一区二区精品久久| 韩国三级中文字幕hd久久精品| 蜜臂av日日欢夜夜爽一区| 九一久久久久久| 国产一区二区三区黄视频| 国产aⅴ精品一区二区三区色成熟| 国内精品视频666| 成人丝袜视频网| 日本电影欧美片| 欧美精品日韩综合在线| 欧美成人官网二区| 国产清纯美女被跳蛋高潮一区二区久久w | 精品国产乱码久久久久久1区2区| 久久综合九色综合欧美就去吻| 国产清纯美女被跳蛋高潮一区二区久久w| 91视频在线观看免费| 国产精品一区二区三区四区| av在线一区二区| 久久久.com| 美女精品一区二区| 欧美群妇大交群的观看方式| 欧美国产乱子伦| 国精产品一区一区三区mba桃花| 欧美日本国产视频| 亚洲一区二区三区激情| 色综合久久六月婷婷中文字幕| 久久久久久久久免费| 裸体在线国模精品偷拍| 色综合久久综合中文综合网| 亚洲精品一区二区精华| 亚洲综合自拍偷拍| 丁香婷婷综合色啪| 日韩情涩欧美日韩视频| 一区二区三区蜜桃网| 床上的激情91.| 精品久久久久久久人人人人传媒 | 粉嫩av一区二区三区粉嫩| 91精品国产高清一区二区三区 | 久久久久久久久蜜桃| 亚洲最新在线观看| 成人精品视频.| 欧美成人女星排行榜| 亚洲国产欧美在线人成| 91网上在线视频| 国产精品日日摸夜夜摸av| 精品一二线国产| 欧美一卡在线观看| 三级亚洲高清视频| 91精品国产欧美一区二区| 亚洲国产精品久久人人爱| 在线视频综合导航| 一区二区欧美视频| 精品国产一区二区三区久久久蜜月 | 国产精品污网站| www.亚洲人| 亚洲美女视频一区| 欧美三级电影精品| 日韩激情视频在线观看| 91麻豆精品国产| 久久99精品久久久| 久久久国产综合精品女国产盗摄| 国产盗摄视频一区二区三区| 国产女同互慰高潮91漫画| www.欧美.com| 亚洲精品免费在线观看| 国产超碰在线一区| 成人欧美一区二区三区白人| 色综合婷婷久久| 日韩中文字幕av电影| 久久亚洲私人国产精品va媚药| 成人激情综合网站| 亚洲一本大道在线| 久久―日本道色综合久久| 色综合色狠狠天天综合色| 午夜精品在线看| 日本一区二区视频在线观看| 色又黄又爽网站www久久| 麻豆91精品91久久久的内涵| 中文在线一区二区| 3d成人动漫网站| 狠狠色狠狠色综合日日91app| 国产欧美日韩亚州综合| 日本韩国一区二区三区| 国产麻豆精品久久一二三| 亚洲欧美偷拍另类a∨色屁股| 日韩免费观看高清完整版在线观看| 国产99精品国产| 日本最新不卡在线| 亚洲日本韩国一区| 一区二区三区在线观看国产| 欧美四级电影网| 成人av在线播放网站| 免费一级欧美片在线观看| 一区二区三区四区蜜桃| 国产婷婷色一区二区三区| 欧美一卡二卡三卡| 欧美日韩国产电影| 日本福利一区二区| 色欧美片视频在线观看在线视频| 国产麻豆91精品| 蜜桃av噜噜一区| 日本v片在线高清不卡在线观看| 亚洲精品菠萝久久久久久久| 亚洲国产成人在线| 国产日韩欧美综合在线| 精品福利一二区| 国产网站一区二区三区| 久久综合色8888| 亚洲国产精品av| 国产精品夫妻自拍| 亚洲人成网站在线| 亚洲尤物视频在线| 午夜电影一区二区三区| 丝袜美腿高跟呻吟高潮一区| 日韩高清不卡一区二区| 另类小说图片综合网| 国产麻豆精品theporn| 春色校园综合激情亚洲| 色妹子一区二区| 欧美综合亚洲图片综合区| 在线成人av网站| 久久亚洲精品国产精品紫薇| 中文字幕在线观看一区| 亚洲va天堂va国产va久| 久久99在线观看| 91小视频在线免费看| 欧美日韩精品一区二区在线播放| 欧美一区二区日韩| 国产精品电影一区二区三区| 日韩在线a电影| av中文字幕在线不卡| 精品国产乱码久久久久久免费| 亚洲蜜臀av乱码久久精品| 国产一区在线视频| 欧美丰满高潮xxxx喷水动漫|