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

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

?? inode.c

?? linux下的源代碼
?? 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一区二区三区免费野_久草精品视频
日韩欧美亚洲国产另类| 欧美丝袜丝交足nylons图片| 日韩一区二区电影| 男女视频一区二区| 日韩精品中午字幕| 国产成人小视频| 亚洲免费毛片网站| 欧洲一区二区av| 美女在线观看视频一区二区| 久久久国产午夜精品| 99亚偷拍自图区亚洲| 亚洲国产aⅴ天堂久久| 欧美成人伊人久久综合网| 国产麻豆成人传媒免费观看| 国产精品二三区| 欧美剧在线免费观看网站| 黄色小说综合网站| 亚洲另类色综合网站| 91精品国产91久久久久久最新毛片| 狠狠色狠狠色综合| 国产精品看片你懂得| 欧美日韩一区二区三区高清| 黄一区二区三区| 一区二区在线观看不卡| 日韩一级大片在线| 91丨porny丨国产| 久久99这里只有精品| 国产精品动漫网站| 日韩一区二区免费视频| 9i在线看片成人免费| 日产精品久久久久久久性色| 中文字幕免费在线观看视频一区| 欧美日韩在线三区| 丁香桃色午夜亚洲一区二区三区| 亚洲国产一区二区视频| 欧美激情一二三区| 6080日韩午夜伦伦午夜伦| 99精品在线观看视频| 精品在线亚洲视频| 亚洲午夜羞羞片| 国产精品视频看| 欧美va亚洲va| 欧美久久久久久久久中文字幕| 丁香网亚洲国际| 国产在线视频一区二区| 亚洲国产成人91porn| 日韩伦理av电影| 久久精品视频在线看| 欧美日韩国产免费一区二区 | 国产成人av影院| 亚洲国产精品久久久久婷婷884| 欧美激情中文字幕| 久久奇米777| 精品少妇一区二区三区日产乱码| 欧美三区在线观看| 91精品福利视频| 99国产精品久久| 成人午夜电影网站| 国产乱码精品一品二品| 免费一级欧美片在线观看| 亚洲一二三区在线观看| 亚洲欧洲美洲综合色网| 国产视频视频一区| 久久久综合精品| 精品国产露脸精彩对白| 日韩欧美国产午夜精品| 91精品国产综合久久福利| 欧美日产国产精品| 欧美日韩高清一区二区不卡| 欧美日韩在线播放一区| 在线观看不卡一区| 欧美日韩在线精品一区二区三区激情| 色婷婷综合久久久中文字幕| 99re在线精品| 在线免费观看不卡av| 欧美婷婷六月丁香综合色| 色狠狠色狠狠综合| 欧美在线高清视频| 欧美色中文字幕| 91精品国产综合久久久蜜臀粉嫩 | 亚洲一区二区精品久久av| 亚洲自拍与偷拍| 亚洲图片一区二区| 亚洲国产精品一区二区www | 日韩中文字幕av电影| 午夜视频一区在线观看| 午夜精品久久久久久久蜜桃app| 亚洲va欧美va天堂v国产综合| 亚洲不卡在线观看| 秋霞电影一区二区| 精品一区二区三区久久久| 国产精品小仙女| 91在线观看成人| 欧美探花视频资源| 欧美变态tickling挠脚心| 久久精品视频在线免费观看| 国产精品福利一区| 亚洲超碰精品一区二区| 极品销魂美女一区二区三区| 国产综合色产在线精品| jlzzjlzz亚洲女人18| 欧美日韩综合不卡| 久久免费电影网| 亚洲另类春色国产| 久久激情五月婷婷| 99热这里都是精品| 这里只有精品99re| 久久综合狠狠综合| 亚洲一区在线免费观看| 韩国av一区二区三区在线观看| 成人午夜精品在线| 欧美日韩一区高清| 久久久精品天堂| 亚洲成人av电影在线| 国产一区二区剧情av在线| 91亚洲男人天堂| 精品国产一二三区| 一个色在线综合| 欧美主播一区二区三区| 26uuu国产在线精品一区二区| 一区视频在线播放| 麻豆精品视频在线观看| 9人人澡人人爽人人精品| 日韩欧美国产一二三区| 亚洲伦在线观看| 国产乱人伦精品一区二区在线观看| 91高清在线观看| 日本一区免费视频| 麻豆成人综合网| 色吊一区二区三区| 中文字幕成人av| 美美哒免费高清在线观看视频一区二区 | 日韩欧美一区电影| 亚洲欧洲综合另类| 国产麻豆一精品一av一免费 | 不卡的电影网站| 精品美女在线观看| 婷婷综合五月天| 在线视频中文字幕一区二区| 亚洲国产精品二十页| 免费成人在线播放| 欧美人与z0zoxxxx视频| 亚洲欧洲综合另类| 成人免费视频免费观看| 精品日韩在线观看| 奇米影视在线99精品| 欧美日韩在线播放三区| 一区二区国产视频| 91福利资源站| 亚洲免费资源在线播放| jlzzjlzz亚洲女人18| 国产欧美日韩麻豆91| 国模套图日韩精品一区二区 | 中文字幕一区免费在线观看| 国产一区二区三区精品欧美日韩一区二区三区 | 99久久精品费精品国产一区二区| 国产亚洲va综合人人澡精品| 久久精品国产秦先生| 5858s免费视频成人| 香蕉影视欧美成人| 欧美精品vⅰdeose4hd| 日韩国产在线观看一区| 欧美日韩一级大片网址| 亚洲成av人综合在线观看| 欧美三区在线观看| 视频一区二区国产| 91精品国产色综合久久ai换脸| 五月综合激情网| 91麻豆精品91久久久久久清纯 | 另类小说视频一区二区| 精品国产乱码久久久久久蜜臀| 激情综合网天天干| 久久精品欧美一区二区三区不卡| 国产精品66部| 综合色中文字幕| 欧美亚洲国产一区二区三区| 一区二区三区国产精华| 欧美日韩国产一级二级| 久久草av在线| 国产精品三级av在线播放| 91丨porny丨首页| 亚洲第一狼人社区| 日韩美女视频在线| 成人一区二区三区中文字幕| 日韩理论片网站| 3atv一区二区三区| 国产大片一区二区| 亚洲欧美国产三级| 91精品在线麻豆| 国产不卡在线播放| 亚洲午夜三级在线| 欧美电视剧免费全集观看| 国产精品888| 亚洲国产另类av| 久久综合九色欧美综合狠狠| 99国产精品国产精品久久| 婷婷亚洲久悠悠色悠在线播放| 337p粉嫩大胆色噜噜噜噜亚洲| 成人av资源站| 首页综合国产亚洲丝袜|