日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

F2FS数据块寻址(linux5.18.11)

發布時間:2023/12/8 linux 60 豆豆
生活随笔 收集整理的這篇文章主要介紹了 F2FS数据块寻址(linux5.18.11) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、node block與data block

node block:存儲元數據(比如ino、尋址數據塊用到的一些信息等等)的block。node block有三種類型:inode block、direct node block、indirect node block。node block在內存中以struct f2fs_node表示。

data block:存儲文件數據的block。

F2FS的每個分區disk layout簡化后如下圖所示,Main area區按照section劃分成多個單元,每個section又包含多個segment(默認情況下1個section含1個segment)。

如果segment存放的是尋址信息,那么就是node segment;如果segment中存放數據信息,那么就是data segment。1個segment含有512個block,所以segment大小為2M。node segment中的block叫做node block;data segment中的block叫做data block。

f2fs node: node block的內存表現形式。

/* 4k大小,內容為node block數據。union部分4072個字節,footer占24個字節 */ struct f2fs_node {/* can be one of three types: inode, direct, and indirect types *//* union占4072字節 */union {struct f2fs_inode i;struct direct_node dn;struct indirect_node in;};/* 24字節 */struct node_footer footer; } __packed;

struct node_footer是f2fs_node的尾部信息,用來描述這個node的性質。

struct node_footer {__le32 nid; /* node id */__le32 ino; /* inode number */__le32 flag; /* include cold/fsync/dentry marks and offset */__le64 cp_ver; /* checkpoint version */__le32 next_blkaddr; /* next node page block address */ } __packed;

如果node_footer->nid == node_footer->ino,那么這個node是inode類型,即struct f2fs_inode類型的node。

direct node:即struct direct_node+struct node_footer,其內容來自于direct node block。struct direct_node默認有DEF_ADDRS_PER_BLOCK個(即1018)entry,每個entry的值是一個block address,entry值對應的block存儲的是文件數據。

struct direct_node {__le32 addr[DEF_ADDRS_PER_BLOCK]; /* array of data block address */ } __packed;

indirect node:即struct indirect_node+struct node_footer,其內容來自于indirect node block。struct direct_node默認有NIDS_PER_BLOCK個(即1018)entry,每個entry的值是一個nid。

struct indirect_node {__le32 nid[NIDS_PER_BLOCK]; /* array of data block address */ } __packed

nid:node id,是一個32位的無符號整數,每個node block對應一個獨一的nid。

NAT:Node Address Table,是struct f2fs_nat_entry的集合,每個entry記錄了node block的nid、block address。根據nid就能找到node block的地址。

struct f2fs_nat_entry {__u8 version; /* latest version of cached nat entry */__le32 ino; /* inode number */__le32 block_addr; /* block address */ } __packed

二、node block與struct f2fs_node

f2fs_get_node_page或f2fs_get_node_page_ra從device上讀取node block,存至page中,page強制類型轉換成struct f2fs_node即得到f2fs node。代碼示例check_index_in_prev_nodes -> f2fs_get_node_page -> F2FS_NODE(node_page):

static int check_index_in_prev_nodes(struct f2fs_sb_info *sbi,block_t blkaddr, struct dnode_of_data *dn) {……/* Get the node page *//* * 如果nid對應的block數據不在緩存中,就從存儲器件上* 讀取block,數據放在node_page。即把4k的block數據* dump到了4k的node_page中。*/node_page = f2fs_get_node_page(sbi, nid);if (IS_ERR(node_page))return PTR_ERR(node_page);offset = ofs_of_node(node_page);…… }static inline unsigned int ofs_of_node(struct page *node_page) {/* node_page強制轉換成struct f2fs_node指針 */struct f2fs_node *rn = F2FS_NODE(node_page);unsigned flag = le32_to_cpu(rn->footer.flag);return flag >> OFFSET_BIT_SHIFT; }static inline struct f2fs_node *F2FS_NODE(struct page *page) {return (struct f2fs_node *)page_address(page); }

三、文件數據塊管理

本節限定條件:不討論inline文件、inline xattr及壓縮文件數據塊組織方式,只討論普通文件的數據塊組織方式。

f2fs_inode->i_addr記錄了文件的前DEF_ADDRS_PER_INODE(即923)個數據塊的地址。如果文件數據塊超過923個,則需用到f2fs_inode->i_nid[DEF_NIDS_PER_INODE]尋址數據塊。DEF_NIDS_PER_INODE值為5,所以inode中最多可以記錄5個nid,nid經過NAT轉換可對應到5個node block。

struct f2fs_inode {__le32 i_addr[DEF_ADDRS_PER_INODE]; /* Pointers to data blocks */__le32 i_nid[DEF_NIDS_PER_INODE]; /* direct(2), indirect(2),double_indirect(1) node id */ }

f2fs_inode->i_nid[0]、f2fs_inode->i_nid[1],nid值經過NAT轉換得到direct node block address。

f2fs_inode->i_nid[2]、f2fs_inode->i_nid[3],nid值經NAT轉換后得到indirect node block address。

f2fs_inode->i_nid[4],nid值經NAT轉換后得到(double)indirect node block address。(f2fs只有struct indirect_node數據結構,沒有double_XXX數據結構。i_nid[4]得到的也是indirect node block address,只不過這里的indirect node block address描述的block中存儲的地址值依然是indirect node block address,double是人為邏輯上的概念)。

direct node block存儲1018個data block address。

圖2 F2FS數據塊尋址示意圖

總結尋址文件位置pos對應的數據塊步驟:

1)計算pos在第幾個4K數據塊上,記作offset

2)如果offse小于923,那么pos對應的數據塊地址為:struct f2fs_inode->i_addr[offset]

3)如果offset大于923,則須多次尋址才能找到最終的數據塊。get_node_path代碼將上圖4列藍色圖,從左到右分別稱作level 0~level 3,算出block在各level中所涉及的node block中的偏移,就能從inode找到最終的數據塊了。

在3)中如果level中的block是inode或者indirect類型的node block,由于這些node block中存儲的是nid,所以需通過NAT找到nid的struct f2fs_nat_entry,進而找到node block的block address。這樣從inode開始,一級一級地找下去,最終可以找到pos對應的data block address。整個尋址過程見第五部分的f2fs_get_dnode_of_data函數。

四、get_node_path

根據邏輯塊號尋址數據塊時,從圖2中從最左邊level 0開始,往level4尋址,每級level涉及一個node block,更具體一點,會涉及node block中的一個entry,get_node_path函數用于記錄node block的一些信息:

1)涉及node block中哪個entry,即在某個node block中的偏移量,存放在出參@offset[4]。

2)涉及哪個邏輯node block,即node block在本文件中的邏輯偏移量,存放在出參@noffset[4]。注意,不是node block的nid。邏輯node block號見圖2中紅色編號。@noffset[4]用于新分配一個node時,記錄node的邏輯偏移,見第五部分f2fs_get_dnode_of_data代碼分析。

對于尋址文件數據庫塊,有1)的信息就足夠了。比如尋址圖2中紅色data block:

inode + offset[0] ==> level1 node block

level1 node block + offset[1] ==> level2 node block

level2 node block + offset[2] ==> level3 node block

level3 node block + offset[3] ==> 紅色data?block

代碼分析:

int get_node_path(struct inode *inode, long block,?int offset[4], unsigned int noffset[4])

@inode:文件的inode

@block:邏輯block號。get_node_path將找到該邏輯block的data block address。

@offset:出參,記錄node block中的entry偏移量。

@noffset:出參,記錄node block的邏輯偏移量。

/* 注釋部分對照圖2理解 */ static int get_node_path(struct inode *inode, long block,int offset[4], unsigned int noffset[4]) {/* 圖2中,inode類型的node block中含多少個data block addr,默認923個 */const long direct_index = ADDRS_PER_INODE(inode);/* 圖2中,direct node block中含多少個data block addr,默認1018個 */const long direct_blks = ADDRS_PER_BLOCK(inode);/* 圖2中,indirect node block中含多少個nid,默認1018個 */const long dptrs_per_blk = NIDS_PER_BLOCK;/* 圖2中,一個indirect node block含多少個data block addr */const long indirect_blks = ADDRS_PER_BLOCK(inode) * NIDS_PER_BLOCK;/* 圖2中,一個double indirect node block含多少個data block addr */const long dindirect_blks = indirect_blks * NIDS_PER_BLOCK;int n = 0;int level = 0;/* level 0中的node就是inode node,是文件的第一個node,所以level 0中的邏輯node恒為0 */noffset[0] = 0;/* 邏輯塊號小于inode node中的data block addr個數,可直接從inode中找到data block addr */if (block < direct_index) {/* level 0中node block中entry的偏移量 */offset[n] = block;goto got;}block -= direct_index;if (block < direct_blks) {/* level 0 中node block中entry的偏移量 */offset[n++] = NODE_DIR1_BLOCK;/* level 1涉及第1個node(前面有node 0,見圖2紅字) */noffset[n] = 1;/* level 1中node block中entry的偏移量 */offset[n] = block;level = 1;goto got;}block -= direct_blks;if (block < direct_blks) {/* level 0中node block中entry的偏移量 */offset[n++] = NODE_DIR2_BLOCK;/* level 1涉及第2個node(前面有node 0,node 1,見圖2紅字) */noffset[n] = 2;/* level 1中node block中entry的偏移量 */offset[n] = block;level = 1;goto got;}block -= direct_blks;if (block < indirect_blks) {/* level 0中node block中entry的偏移量 */offset[n++] = NODE_IND1_BLOCK;/* level 1涉及第3個node(前面有node 0,node 1,node2,見圖2紅字)*/noffset[n] = 3;/* level 1中node block中entry的偏移量 */offset[n++] = block / direct_blks;/** level 2涉及的邏輯node號* 4代表前面的node0~node3(對照圖2理解)** offset[n-1]表示level 1中涉及的node block中偏移幾個entry,每個entry對應一個node,* 所以offset[n-1]就表示level 2中有幾個node。* 所以4 + offset[n - 1就是level 2中的node的邏輯號。*/noffset[n] = 4 + offset[n - 1];/* level 2中node block中entry的偏移量 */offset[n] = block % direct_blks;level = 2;goto got;}block -= indirect_blks;if (block < indirect_blks) {/* level 0中node block中entry的偏移量 */offset[n++] = NODE_IND2_BLOCK;/** level 1涉及的邏輯node號* 4代表前面的node0~node3(對照圖2理解)* dptrs_per_blk代表node3含有的node數量(對照圖2理解)* 4 + dptrs_per_blk 表示在level 1的node前面一共有多少個node*/noffset[n] = 4 + dptrs_per_blk;/** level 1中node block中entry的偏移量* level 1中node block每個entry含有direct_blks個node,* 所以block / direct_blks就表示node block中entry的偏移量*/offset[n++] = block / direct_blks;/** level 2中涉及的邏輯node號* 5代表前面的node0、node1、node2、node3、node1023(對照圖2理解)* dptrs_per_blk代表node3含有的node數量(對照圖2理解)* offset[n - 1]代表node1023中偏移幾個entry,每個entry對應一個direct node,* 所以偏移量就代表了node數量。** 所以5 + dptrs_per_blk + offset[n - 1]就表示在level 2中涉及* 的node前面一共有多少個node*/noffset[n] = 5 + dptrs_per_blk + offset[n - 1];/* levle 2中node block中entry的偏移 */offset[n] = block % direct_blks;level = 2;goto got;}block -= indirect_blks;if (block < dindirect_blks) {/* level 0中node block中entry的偏移量 */offset[n++] = NODE_DIND_BLOCK;/** level 1涉及的邏輯node號* 5代表前面的node0、node1、node2、node3、node1023(對照圖2理解)* (dptrs_per_blk * 2)代表node3、node1023含有的node數量(對照圖2理解)*/noffset[n] = 5 + (dptrs_per_blk * 2);/* level 1中node block中entry的偏移量 */offset[n++] = block / indirect_blks;/** level 2涉及的邏輯node號* 6代表前面的node0、node1、node2、node3、node1023、node2043(對照圖2理解)* (dptrs_per_blk * 2)代表node3、node1023含有的node數量(對照圖2理解)* * offset[n - 1]代表node2043中偏移幾個entry,每個entry又是一個indirect node,* 每個indirect node含有dptrs_per_blk個node,算上indirect node本身,* 所有一個entry一共有[offset[n - 1]*(dptrs_per_blk + 1)]* 個node, 這里的+1就是指indirect node本身*/noffset[n] = 6 + (dptrs_per_blk * 2) +offset[n - 1] * (dptrs_per_blk + 1);/* levle 2涉及的邏輯node號(對照圖2理解)*/offset[n++] = (block / direct_blks) % dptrs_per_blk;/** level 3涉及的邏輯node號** 7代表前面的node0、node1、node2、node3、node1023、* node2043以及level 2中的一個node(對照圖2理解)** (dptrs_per_blk * 2)代表node3、node1023含有的node數量(對照圖2理解)** offset[n - 2]表示level 1中node中entry的偏移量,每個entry又是一個indirect node,* 每個indirect node含有dptrs_per_blk個node,算上jindirect node本身,* 所有一個entry一共有[offset[n - 2]*(dptrs_per_blk + 1)]* 個node, 這里的+1就是指indirect node本身** offset[n - 1]表示level 2中node中entry的偏移量(這個node就是數字7中的一個node),* 每個entry對應一個direct node,所以這個偏移量就代表了node數量。*/noffset[n] = 7 + (dptrs_per_blk * 2) +offset[n - 2] * (dptrs_per_blk + 1) +offset[n - 1];/* levle 3中node block中entry的偏移 */offset[n] = block % direct_blks;level = 3;goto got;} else {return -E2BIG;} got:return level; }

五、f2fs_get_dnode_of_data

int f2fs_get_dnode_of_data(struct dnode_of_data *dn, pgoff_t index, int mode);

@dn 出參,存放與@index相關的direct node的信息

@index,入參,邏輯塊號

@mode,入參,查找node或者分配node

函數功能:

根據@index找到對應的direct node(可能是已有的,也可能是新分配的),node信息放在@dn。

int f2fs_get_dnode_of_data(struct dnode_of_data *dn, pgoff_t index, int mode) {struct f2fs_sb_info *sbi = F2FS_I_SB(dn->inode);/* 記錄level 0 ~ level 3涉及的node block對應的page */struct page *npage[4];struct page *parent = NULL;/* 記錄level 0 ~ level 3涉及的node中entry的偏移 */int offset[4];/* 記錄level 0 ~ level 3中邏輯node號 */unsigned int noffset[4];nid_t nids[4];int level, i = 0;int err = 0;/* 見第四節分析 */level = get_node_path(dn->inode, index, offset, noffset);if (level < 0)return level;/* inode類型的node,ino就是nid */nids[0] = dn->inode->i_ino;npage[0] = dn->inode_page;if (!npage[0]) {/* 根據nid找到node block的page */npage[0] = f2fs_get_node_page(sbi, nids[0]);if (IS_ERR(npage[0]))return PTR_ERR(npage[0]);}/* if inline_data is set, should not report any block indices */if (f2fs_has_inline_data(dn->inode) && index) {err = -ENOENT;f2fs_put_page(npage[0], 1);goto release_out;}parent = npage[0];/* 找到level 0中node記錄的nid值,這個nid值就是下一級level 2涉及的node block的nid */if (level != 0)nids[1] = get_nid(parent, offset[0], true);dn->inode_page = npage[0];dn->inode_page_locked = true;/* get indirect or direct nodes */for (i = 1; i <= level; i++) {bool done = false;if (!nids[i] && mode == ALLOC_NODE) {/* alloc new node *//** level i中涉及的node的entry的表項值為空,* 需要從free_nid_list中獲取一個可用的nid值寫入entry*/if (!f2fs_alloc_nid(sbi, &(nids[i]))) {err = -ENOSPC;goto release_pages;}dn->nid = nids[i];/** noffset[i]是邏輯node號,新分配一個page,* 并根據邏輯node號加入sbi->node_inode->i_mapping*/npage[i] = f2fs_new_node_page(dn, noffset[i]);if (IS_ERR(npage[i])) {f2fs_alloc_nid_failed(sbi, nids[i]);err = PTR_ERR(npage[i]);goto release_pages;}/* @parent:node中entry值為空的node* @offset[i - 1]:parent中entry值為空的位置* @nids[i]:新得到的nid值* i == 1說明level 0的node中的表項值為空,level 0中的node是inode類型的。* set_nid:將nids[i]寫入parent的offset[i - 1]表項*/set_nid(parent, offset[i - 1], nids[i], i == 1);f2fs_alloc_nid_done(sbi, nids[i]);done = true;} else if (mode == LOOKUP_NODE_RA && i == level && level > 1) {npage[i] = f2fs_get_node_page_ra(parent, offset[i - 1]);if (IS_ERR(npage[i])) {err = PTR_ERR(npage[i]);goto release_pages;}done = true;}if (i == 1) {dn->inode_page_locked = false;unlock_page(parent);} else {f2fs_put_page(parent, 1);}if (!done) {/** @nids[i]:當前level涉及的node的邏輯node號* 獲取當前level的node page*/npage[i] = f2fs_get_node_page(sbi, nids[i]);if (IS_ERR(npage[i])) {err = PTR_ERR(npage[i]);f2fs_put_page(npage[0], 0);goto release_out;}}if (i < level) {parent = npage[i];/** @parent:當前level的node page* @offset[i]:當前level中node的entry偏移* get_nid:獲取當前level的node page的entry的值,即下一級node的nid值*/nids[i + 1] = get_nid(parent, offset[i], false);}}/** 記錄最終找到的direct node的信息,放在出參@dn返回* @dn->nid:direct node的nid值(注意,不是邏輯node號)* @dn->ofs_in_node:direct node中entry的偏移量* @dn->node_page:direct node的page* @dn->data_blkaddr:direct node中偏移@dn->ofs_in_node的entry表項值,這個是數數據塊地址,可能是有效的地址,也可能是一個空地址NULL_ADDR*/dn->nid = nids[level];dn->ofs_in_node = offset[level];dn->node_page = npage[level];dn->data_blkaddr = f2fs_data_blkaddr(dn);if (is_inode_flag_set(dn->inode, FI_COMPRESSED_FILE) &&f2fs_sb_has_readonly(sbi)) {unsigned int c_len = f2fs_cluster_blocks_are_contiguous(dn);block_t blkaddr;if (!c_len)goto out;blkaddr = f2fs_data_blkaddr(dn);if (blkaddr == COMPRESS_ADDR)blkaddr = data_blkaddr(dn->inode, dn->node_page,dn->ofs_in_node + 1);f2fs_update_extent_tree_range_compressed(dn->inode,index, blkaddr,F2FS_I(dn->inode)->i_cluster_size,c_len);} out:return 0;release_pages:f2fs_put_page(parent, 1);if (i > 1)f2fs_put_page(npage[0], 0); release_out:dn->inode_page = NULL;dn->node_page = NULL;if (err == -ENOENT) {dn->cur_level = i;dn->max_level = level;dn->ofs_in_node = offset[level];}return err; }

總結

以上是生活随笔為你收集整理的F2FS数据块寻址(linux5.18.11)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

色婷婷福利 | 国产精品毛片久久久久久 | 日韩丝袜 | 天天干天天拍天天操天天拍 | 香蕉97视频观看在线观看 | 亚洲欧美日韩国产一区二区 | 久久黄色片子 | 91视频 - v11av | 日韩在线高清免费视频 | 欧美亚洲精品在线观看 | 亚洲国产99| 日韩亚洲精品电影 | 久久精品国产成人 | 久久伊人综合 | 日韩av网站在线播放 | 九九九视频在线 | 美女视频黄免费的 | 超碰在线免费97 | 视频 天天草 | 欧美 亚洲 另类 激情 另类 | .国产精品成人自产拍在线观看6 | 香蕉视频在线看 | 午夜精品久久久久久99热明星 | 免费在线看成人av | 天天操夜夜操夜夜操 | 欧美午夜精品久久久久久孕妇 | 91大神一区二区三区 | 国产高清日韩欧美 | 日本精品一区二区三区在线播放视频 | 亚洲午夜久久久久久久久久久 | 99热这里有精品 | 国产精品久久久久久久久久妇女 | 日韩高清免费电影 | 久久久久综合精品福利啪啪 | 国产精品手机在线 | 日韩欧美成人网 | 久久婷婷色 | 中文字幕网站视频在线 | 亚洲精品66| 久久国产精品99国产精 | 毛片在线播放网址 | 成人在线一区二区三区 | 国产黄色av影视 | 91桃色免费观看 | 天天翘av | 毛片一级免费一级 | 亚洲高清在线视频 | 综合精品久久久 | 草久在线视频 | av观看网站 | 婷婷色中文网 | 韩国av在线播放 | 久久天天操 | 久久无码av一区二区三区电影网 | 色天天中文 | 日韩美女一级片 | 福利一区在线 | 最近2019中文免费高清视频观看www99 | 日韩精品在线观看视频 | 天天综合天天综合 | 国内精品久久久久久久久 | 五月天丁香亚洲 | 月下香电影| 国产精品二区三区 | 国产成人精品久久久久蜜臀 | 日韩在线中文字幕 | 中文字幕日韩一区二区三区不卡 | 婷婷在线五月 | 成人在线视频免费观看 | 精品毛片久久久久久 | 日日射av | 成人av教育| 天天综合网在线 | 综合中文字幕 | 欧美在线一二区 | 亚洲久在线 | www久 | 99精品视频在线看 | 免费99精品国产自在在线 | 国产精品99久久久久久宅男 | 九色视频网站 | 99热超碰在线 | 九九热在线视频免费观看 | 国产一级在线视频 | 国产精品一区二区在线观看 | 麻豆视频免费在线播放 | 超碰在线人人爱 | 黄色aa久久 | 天天干,天天干 | 国产专区精品视频 | 亚洲精品一区中文字幕乱码 | 99热这里只有精品久久 | 国产精品乱看 | 男女激情麻豆 | 91麻豆精品国产91久久久使用方法 | 国产精品a久久 | 亚洲精品在线观看中文字幕 | 99久久99久久精品免费 | 亚洲精品福利在线观看 | 91成人免费看片 | 日韩欧美国产激情在线播放 | 97超碰人人澡人人爱学生 | 91在线中字| 午夜免费视频网站 | 国产专区视频在线观看 | 麻豆传媒视频在线播放 | 亚洲综合在线五月 | 六月色婷 | 天天干 天天摸 天天操 | 久草在线官网 | 国产糖心vlog在线观看 | 狠狠狠色丁香综合久久天下网 | 999久久久久久久久 69av视频在线观看 | 国产手机视频在线观看 | 国产精品视频不卡 | 青青草在久久免费久久免费 | 欧美在线视频a | 丁香色婷 | 国产精品一区二区白浆 | 91在线看黄 | 九草视频在线观看 | 日韩欧美专区 | 色偷偷888欧美精品久久久 | 91成人蝌蚪 | 久久久这里有精品 | 狠狠色噜噜狠狠狠 | 中日韩男男gay无套 日韩精品一区二区三区高清免费 | 国产一区二区播放 | 欧美成人中文字幕 | 成人午夜电影在线 | 色姑娘综合网 | 视频在线国产 | 在线免费av电影 | 亚洲第一区在线播放 | 99精品视频在线 | 99视频免费观看 | 久久 一区 | 97精品国产97久久久久久免费 | 久久婷婷国产色一区二区三区 | 97超碰在| 免费看搞黄视频网站 | 91亚洲成人 | 免费在线激情电影 | 久久香蕉一区 | 一区中文字幕在线观看 | 国产精品毛片久久 | 91精品成人 | 日日日日日 | 色婷婷国产精品 | 久久久久在线视频 | 久久在线一区 | 色91在线视频 | 最新日韩中文字幕 | 中文字幕在线看视频 | 91超级碰| 久草在线视频网 | 色婷婷播放 | 久久黄色小说视频 | 午夜神马福利 | 日操操 | www黄在线| 在线视频1卡二卡三卡 | 99精品视频网 | 国产一级电影网 | 国产区精品在线观看 | 婷婷精品国产一区二区三区日韩 | 国产精品成人av在线 | 久久精品播放 | 精品久久久精品 | 狠狠狠色狠狠色综合 | av解说在线 | 丁香婷婷色月天 | 亚洲精品美女久久久 | 久久久久激情 | 国产精品久久一区二区三区不卡 | 久久国产三级 | 国产精品久久久久久久久久三级 | 播五月婷婷 | 久久免费视频一区 | 中文字幕在线播放第一页 | 国产1区2区3区精品美女 | 国产精品96久久久久久吹潮 | 成人小视频在线观看免费 | 成人影视免费 | av理论电影 | 精品视频123区在线观看 | 丁香网婷婷 | 九九热在线观看视频 | 免费久久99精品国产 | 国产黄色成人 | 日韩午夜剧场 | 丁香六月网| 亚洲欧美国产精品18p | 色综合天天综合在线视频 | 91爱爱网址 | 午夜在线免费观看 | 中文字幕在线观看一区二区 | 中文字幕在线观看视频网站 | 国色天香永久免费 | 欧美午夜一区二区福利视频 | 国产xx在线| 欧美日本中文字幕 | 精品在线看 | av高清影院 | 美女国内精品自产拍在线播放 | 欧美成人中文字幕 | 精品国产欧美 | 99产精品成人啪免费网站 | 国产精品久久久久久久久久久久午夜片 | av电影免费 | 一级片色播影院 | 日韩超碰| 亚洲综合国产精品 | 久久经典国产 | 永久免费的av电影 | 人人搞人人干 | 韩国av电影在线观看 | 午夜少妇一区二区三区 | 中文字幕黄色av | 欧美另类交在线观看 | 欧美精品久久久久久久久老牛影院 | 99精品免费观看 | 成人av动漫在线观看 | 中文一二区 | 欧美另类巨大 | 人人舔人人爱 | av免费观看网站 | 久久久久久久久久久精 | 国产成人精品一二三区 | 激情视频在线观看网址 | 欧美亚洲xxx | 亚洲国产精品女人久久久 | 98涩涩国产露脸精品国产网 | 日韩免| 久久综合免费视频 | 97看片网 | 日韩欧美视频在线观看免费 | 国产香蕉在线 | 中文字幕 二区 | 在线精品视频免费播放 | 亚洲国产日韩一区 | 国产精品久久艹 | 99国产高清| 99热这里只有精品在线观看 | 超碰成人av | 中文字幕在线视频一区二区 | 色婷婷骚婷婷 | 久久99在线观看 | av在线com| 综合久久五月天 | avcom在线 | 国产成人一二三 | 国产在线精品二区 | 久草香蕉在线视频 | 五月婷丁香网 | 四虎影视www | 婷婷午夜激情 | 国产精品一级在线 | 九九热精 | 免费视频久久久久 | 久久精品网站视频 | 欧美日韩三区二区 | 日韩毛片在线播放 | 久久1电影院 | 日日干夜夜草 | 在线免费观看成人 | 日本电影黄色 | 亚洲日本中文字幕在线观看 | 成人va视频 | 蜜臀一区二区三区精品免费视频 | 久久午夜精品视频 | 婷婷国产一区二区三区 | 亚洲成av人片在线观看 | 在线中文字母电影观看 | h网站免费在线观看 | 不卡的av在线播放 | 美女久久精品 | 91久色蝌蚪| 天天操夜夜摸 | 日韩久久视频 | 中文字幕在线观看日本 | 国产日韩欧美在线一区 | 欧美性做爰猛烈叫床潮 | 久久99亚洲热视 | 久久色视频 | 成人免费中文字幕 | 在线www色 | 国产成人资源 | 久久亚洲福利视频 | 午夜精品久久久久久久99热影院 | 久久黄页 | 亚洲 综合 精品 | 日韩精品不卡 | 在线观看成人小视频 | 国产中文 | 亚洲黄色一级视频 | 成人影音在线 | 一区二区三区免费 | 国产精品久久久久久爽爽爽 | 999久久久免费精品国产 | www一起操 | 国产视频一区二区在线 | 久久99热这里只有精品 | 中文字幕在线观看第二页 | 在线播放 日韩专区 | 91免费高清观看 | 日韩欧美精品一区二区三区经典 | 蜜臀91丨九色丨蝌蚪老版 | 97色狠狠| 97自拍超碰 | www.亚洲黄色| 亚洲精品黄色 | 久久99国产视频 | 91在线看黄 | 久久久99精品免费观看 | 国产精品久久一区二区无卡 | 亚洲精品中文在线资源 | 日韩影视精品 | 一区二区三区精品在线视频 | 99久久精品国| 久艹视频在线观看 | 97精品国产97久久久久久春色 | 欧美一级片在线 | 毛片.com| 国产亚洲精品美女 | 精品国产人成亚洲区 | 日韩高清不卡在线 | 欧美婷婷色 | 国产伦理久久 | 玖玖视频 | www.久久久精品 | 亚洲免费婷婷 | 久久天天躁夜夜躁狠狠躁2022 | 国产精品久久久久久吹潮天美传媒 | 91在线视频免费 | 97激情影院 | av丝袜制服 | 国产黄在线免费观看 | 天天射综合网视频 | 中文字幕日韩在线播放 | 九九视频精品免费 | 精品国产电影一区 | 伊人成人精品 | 日韩在线精品一区 | 91精品爽啪蜜夜国产在线播放 | 中文字幕久久精品 | 99热这里只有精品久久 | 国产在线观看地址 | 久久精品欧美一区二区三区麻豆 | av一区二区在线观看中文字幕 | 国产午夜三级一区二区三桃花影视 | 狠狠的操 | 99在线免费视频 | 午夜婷婷在线观看 | 91麻豆精品国产自产在线 | 亚洲最新av在线 | 婷婷网站天天婷婷网站 | 99精品视频在线 | 亚洲日b视频 | 国产亚洲精品久久久久久移动网络 | 成人av资源站 | 伊人成人久久 | 96av视频| 中文字幕在线视频一区 | 久久免费公开视频 | 亚洲综合视频在线观看 | 亚洲欧洲精品一区二区 | 亚洲开心激情 | 久久久影视| av一本久道久久波多野结衣 | 久久夜夜夜| 99久久毛片 | 色悠悠久久综合 | 99精品视频在线免费观看 | www视频在线播放 | 色99色| 在线 影视 一区 | 国产精品视频免费 | 成人av一级片 | 在线黄网站| 不卡日韩av | 日韩av偷拍| 亚洲jizzjizz日本少妇 | 人人爽久久涩噜噜噜网站 | 黄网站app在线观看免费视频 | 亚洲久草在线视频 | 国产精品国产三级在线专区 | 911久久 | 97精品一区二区三区 | 欧美孕交vivoestv另类 | 天天干天天弄 | 粉嫩av一区二区三区四区五区 | 美女在线免费观看视频 | 免费的黄色av | 首页国产精品 | 少妇bbbb揉bbbb日本 | 激情欧美国产 | 国产麻豆精品久久 | 中文字幕永久 | 国产精品色视频 | 毛片二区 | 亚洲精品视频在线观看视频 | 久久久高清视频 | 激情偷乱人伦小说视频在线观看 | 96亚洲精品久久久蜜桃 | 91成人免费 | 在线成人小视频 | 亚洲电影网站 | 婷婷久久婷婷 | 99久久久久免费精品国产 | 国产精品久久久久久久午夜 | 九九热精品视频在线观看 | 国产黄色电影 | 婷婷中文在线 | 亚洲天天摸日日摸天天欢 | 欧美电影黄色 | 成人国产一区二区 | 97狠狠操| 99热手机在线 | 久久中文网 | 五月婷婷丁香在线观看 | 婷婷视频在线观看 | 日韩欧美黄色网址 | 在线视频欧美日韩 | av片中文字幕 | 天天综合色天天综合 | av电影在线播放 | 一区二区三区四区五区在线 | 婷婷色综合色 | 国产精品露脸在线 | 免费福利小视频 | 最新av网站在线观看 | 天天干天天射天天爽 | 欧美黄在线 | 国产中文在线播放 | 日韩在线资源 | 狠狠gao| 亚洲综合视频在线观看 | 香蕉蜜桃视频 | 国产第一页精品 | 最新色视频 | 日韩a欧美| www.av免费观看| 日韩欧美精品在线观看视频 | 狠狠地日| 国产精品入口麻豆www | www五月婷婷 | 欧美一级淫片videoshd | 97视频资源 | 亚洲精品国 | 一区二区亚洲精品 | 国产69精品久久99的直播节目 | 亚洲精品高清一区二区三区四区 | 日韩xxxx视频 | 久久久久国产成人精品亚洲午夜 | av在线看网站 | 成片免费| 99免费看片 | 日韩欧美在线国产 | 国产九色视频在线观看 | 亚洲色影爱久久精品 | 日韩精品久久久免费观看夜色 | 久久久精品久久日韩一区综合 | 日韩免费视频 | 日韩一级片观看 | 视频国产一区二区三区 | 超碰97免费在线 | 久久国精品 | av网站手机在线观看 | 亚洲 欧美变态 另类 综合 | 91视频免费网站 | 欧美专区国产专区 | 国产精品久久久久久久久久免费 | 久久久久成人免费 | 亚洲最新合集 | 色姑娘综合天天 | 女人高潮特级毛片 | 日韩高清成人在线 | 日韩免费视频 | 韩国av电影在线观看 | 国产精品青草综合久久久久99 | 精品久久久久久久久久国产 | 在线观看精品一区 | 亚洲精品乱码久久 | 一级黄色电影网站 | 日韩高清精品免费观看 | 精品久久久久国产免费第一页 | 精品在线免费视频 | 视频一区二区视频 | 91精品免费视频 | 欧美日韩国产三级 | 久久极品| 在线免费观看国产精品 | 中文字幕av一区二区三区四区 | 中文字幕在线观看视频网站 | 国产精品一区二区av影院萌芽 | 国产aa精品 | 免费成人结看片 | 天堂av免费在线 | 国产视频在线观看一区 | 91精品秘密在线观看 | 九九久久免费视频 | 中文字幕电影高清在线观看 | 精品在线一区二区三区 | 日韩a欧美 | 日韩黄色影院 | 国产成人精品久久亚洲高清不卡 | 国产乱老熟视频网88av | 国产精品v欧美精品v日韩 | 狠狠色狠狠色综合日日小说 | 精品国产免费观看 | 91人人澡人人爽人人精品 | 国产成人精品一区二区三区 | 97色在线观看 | 97在线精品国自产拍中文 | 国产精品69av| 欧美一区免费观看 | 在线视频一二区 | 精品亚洲va在线va天堂资源站 | 一区二区三区精品在线 | 在线电影中文字幕 | 日本精品视频一区二区 | 久久精品黄色 | 天天摸天天干天天操天天射 | 国产精品乱码一区二三区 | 国产精品入口麻豆 | 天天色天天爱天天射综合 | 黄色大全视频 | 日日干,天天干 | 婷婷夜夜 | 夜夜夜夜操| 国产精品1000 | 九九激情视频 | 欧美成人在线免费观看 | 精品久久久国产 | 国产一级淫片在线观看 | 国产一级淫片免费看 | 夜色资源站wwwcom | 久久99婷婷 | 久久久观看 | 亚洲三级在线免费观看 | 国产福利91精品 | 国产精品美女久久 | 欧美久久久久久久 | 亚洲国产中文字幕 | 中文成人字幕 | 四虎影视欧美 | 成人h动漫在线看 | 国际精品久久 | 久久欧洲视频 | 狠狠狠色丁香婷婷综合久久五月 | 国产在线观看免费av | 91视频这里只有精品 | 香蕉视频网站在线观看 | 一区在线电影 | 国产黄在线 | 国产精品视频在线观看 | 又黄又爽又色无遮挡免费 | 国产午夜精品一区二区三区四区 | 91精品啪 | 久久久免费精品国产一区二区 | 玖玖在线免费视频 | 国产黄色特级片 | 国产69久久久欧美一级 | 精品国产免费久久 | av在观看| 又黄又爽的免费高潮视频 | 夜色成人网 | 久草在线最新 | 天堂av免费观看 | 日韩精品极品视频 | 久草手机视频 | 欧美久久久久久久久久 | 黄色免费网战 | 91福利在线观看 | 伊人黄 | 中文字幕国产一区 | 日韩国产精品一区 | 天天草av| 国产精品久久婷婷六月丁香 | 波多野结衣电影一区二区 | 91在线视频观看免费 | a级国产乱理伦片在线观看 亚洲3级 | 婷婷精品进入 | 婷婷丁香狠狠爱 | 天天射天天做 | 九色视频自拍 | 97在线免费 | 中文字幕影视 | 久久精品爱爱视频 | 国产一区在线不卡 | 国产一级a毛片视频爆浆 | 国产免费观看高清完整版 | 亚洲综合小说电影qvod | 一区中文字幕在线观看 | 亚洲精品国产第一综合99久久 | 91在线看视频免费 | 在线观看av大片 | 狠狠操夜夜| 人人澡人人添人人爽一区二区 | 日日夜夜噜噜噜 | av成人黄色 | 91av在线电影| 天天插日日射 | 国产精品入口麻豆www | 亚洲综合小说电影qvod | 一区二区丝袜 | 亚洲成人免费在线观看 | 免费在线中文字幕 | 69人人| 人人狠 | 91chinesexxx | 中文字幕一区二区三区四区久久 | 最新日韩中文字幕 | 久久99久久久久久 | 日韩在线免费看 | 精品视频久久 | 中文字幕在线观看一区二区 | 91在线播放国产 | 国产婷婷精品av在线 | 激情久久伊人 | 国产精品视频全国免费观看 | 色国产精品一区在线观看 | 国产精品一区二区吃奶在线观看 | 国产精品嫩草影视久久久 | 国产精品成人在线观看 | 美女网站在线免费观看 | 在线免费观看黄色 | 黄色av一区二区三区 | 99视频免费在线观看 | 一级理论片在线观看 | 五月天综合网 | 黄色一级免费电影 | 免费亚洲视频 | 深夜视频久久 | 日日干夜夜操视频 | 久久精品高清视频 | 国产一区二区高清视频 | 成人a级免费视频 | 精品国内自产拍在线观看视频 | 久久在线播放 | 欧美日韩高清国产 | 精品国产乱码久久久久久天美 | 国产免费叼嘿网站免费 | 国产精品一区二区中文字幕 | 激情校园亚洲 | 99精品视频免费观看视频 | 特及黄色片 | 中文字幕丰满人伦在线 | 成人亚洲综合 | 最近中文字幕免费av | 精品亚洲国产视频 | 午夜av影院 | 欧美日本一区 | 久久久久久美女 | 久久久久国产成人免费精品免费 | 成人cosplay福利网站 | 江苏妇搡bbbb搡bbbb | 999久久久久 | 国产成人精品日本亚洲999 | 国产成人性色生活片 | 日韩理论片在线观看 | 亚洲视频综合 | 中文字幕av最新更新 | 伊人久久国产精品 | 在线不卡视频 | 亚洲一级黄色片 | 91精品夜夜 | 99国产精品久久久久老师 | 国产免费成人 | 婷婷色六月天 | 精品久久久久久亚洲综合网站 | 五月婷av| 粉嫩av一区二区三区入口 | 国产小视频在线免费观看 | 黄色精品网站 | 成人在线视频一区 | 在线观看成年人 | 久久69精品久久久久久久电影好 | 91福利在线导航 | av视屏在线 | 成人免费视频网 | 日韩欧美精选 | 日韩精品视频在线观看免费 | 黄色三级av| 国产免费叼嘿网站免费 | 操操操日日 | 国产在线中文字幕 | 久久久久久毛片精品免费不卡 | 狠狠地操 | 亚洲欧美视频网站 | 在线观看中文字幕亚洲 | 亚洲激情小视频 | 在线只有精品 | 人人爽夜夜爽 | 久久网页 | 国产精品密入口果冻 | 私人av| 国产精品a成v人在线播放 | 精品久久五月天 | 天天干,夜夜爽 | 日韩二区在线播放 | 日精品 | 一区二区 精品 | 在线观看中文字幕一区二区 | v片在线播放 | 亚洲精品高清一区二区三区四区 | 国内精品久久久精品电影院 | 欧美日韩天堂 | 国产精品剧情 | 久久韩国免费视频 | 日本少妇视频 | 精品国产乱子伦一区二区 | 东方av免费在线观看 | 日本aaa在线观看 | 国产五月婷| 天天操夜夜操国产精品 | 青青河边草免费观看 | 亚洲欧美色婷婷 | 久久免费播放视频 | 四虎在线免费视频 | 国产高清绿奴videos | 亚洲成免费| 久久免费视频这里只有精品 | 久久九九影院 | 成人中文字幕+乱码+中文字幕 | 国产亚洲精品久久 | 国产99精品在线观看 | 日韩亚洲精品电影 | 国产精品黄色影片导航在线观看 | 亚洲涩涩网站 | 天天躁日日躁狠狠躁av中文 | 一区二区精品视频 | 免费看一级特黄a大片 | 日韩亚洲在线视频 | 亚洲成人精品久久久 | 久草在线视频在线观看 | 久久免费99精品久久久久久 | av一级一片| 久av电影| 亚洲一级影院 | 久久精品久久综合 | 97人人超| 久久人人爽 | 久草久草在线观看 | 亚洲欧洲在线视频 | 午夜性生活片 | 久久久麻豆视频 | 久久国产精品色婷婷 | 久久久影片 | 亚洲成人av一区二区 | 婷婷在线色 | 中文字幕国产一区二区 | 在线观看视频国产 | 特片网久久 | 亚洲永久精品视频 | 亚洲视频综合 | 在线观看精品国产 | 久久午夜精品影院一区 | 97精品国产97久久久久久 | 手机在线中文字幕 | 中文字幕在线观 | 91精品国产亚洲 | av网站播放 | 成人精品一区二区三区中文字幕 | 中文字幕二区在线观看 | 久久精品网站视频 | 亚洲专区在线视频 | 婷婷射五月 | 日韩成人看片 | 久爱综合 | 久久精品导航 | 激情av资源网 | 日韩av电影手机在线观看 | 啪嗒啪嗒免费观看完整版 | 久久精品久久精品 | 国内精品久久久久久久久久清纯 | 日本激情动作片免费看 | 亚洲精品乱码久久久久久蜜桃动漫 | 国产精品久久久久久久久久不蜜月 | 免费久久99精品国产 | 精品国产精品久久 | av一区二区三区在线播放 | 国产精品久久一区二区三区不卡 | 日韩v在线| 日韩免费观看高清 | a电影在线观看 | 狠狠的干 | 在线电影日韩 | 很黄很污的视频网站 | 久久福利影视 | 日韩在线视频免费播放 | 国产人在线成免费视频 | 国产亚洲人成网站在线观看 | 波多野结衣在线观看一区二区三区 | 深爱激情站 | 黄色软件在线观看视频 | 久久美女高清视频 | 亚洲精品中文在线观看 | 亚洲精品国产精品国 | 国产破处精品 | 91精品视频在线观看免费 | 国产成人精品综合久久久 | 日日干日日色 | 韩日电影在线免费看 | 免费在线观看av网站 | 日批网站在线观看 | 美女免费视频一区 | 日日爱影视 | 丁香综合av | 久久久久久久久久久久久久免费看 | 色伊人网| 奇米影视999 | 国产区在线视频 | 欧美激情xxxx性bbbb | 人人插人人草 | 国产自在线 | 国产高清在线不卡 | 久久你懂得 | 天天曰天天 | 日本中文字幕在线观看 | 久久xxxx| 激情伊人五月天久久综合 | 日韩精品一区电影 | 涩涩资源网 | 在线观看视频黄色 | 精品亚洲午夜久久久久91 | 亚洲激精日韩激精欧美精品 | 成人午夜黄色影院 | 日韩精品aaa| 亚洲高清视频一区二区三区 | 人人射网站 | 精品96久久久久久中文字幕无 | 中日韩在线视频 | 精品少妇一区二区三区在线 | 在线不卡视频 | 成年人免费在线观看 | 不卡精品视频 | 久久99国产精品久久 | 视频一区视频二区在线观看 | 日本成人黄色片 | 27xxoo无遮挡动态视频 | 91香蕉视频在线下载 | 在线观看视频精品 | 天堂av在线免费 | 中文超碰字幕 | 99国产高清 | 天堂av在线网址 | 亚洲一区二区高潮无套美女 | 在线看片视频 | 中文字幕中文中文字幕 | 日韩a在线看 | 韩国在线视频一区 | 日韩小视频网站 | 国产精品久久久久高潮 | 超碰伊人网 | 96香蕉视频| 亚洲精品乱码久久久久久蜜桃不爽 | 久久成年人 | 免费91麻豆精品国产自产在线观看 | 久草在线网址 | 亚洲 欧美 成人 | 91精品伦理 | 一区二区三区日韩在线观看 | 97人人精品 | 国内视频一区二区 | 午夜视频在线观看一区 | 成人一区二区三区在线观看 | 天堂网av在线 | 国产午夜精品一区二区三区在线观看 | 久久亚洲私人国产精品va | 欧美日韩另类在线观看 | 国产中文字幕av | 欧美日本高清视频 | 在线观看日本高清mv视频 | 欧美精品一区二区免费 | 日韩av高清在线观看 | 亚洲精品在线观看不卡 | www久| 丁香激情综合久久伊人久久 | 18国产精品白浆在线观看免费 | 9i看片成人免费看片 | 特级毛片在线 | 精品国产一区二区三区在线 | 久久99热国产 | 国产亚洲综合精品 | 91在线操 | 日韩在线视频免费看 | 人人澡人人模 | 国产一级片免费观看 | av高清一区二区三区 | 91福利区一区二区三区 | 国产精品久久久久免费 | 在线精品视频免费播放 | 色婷婷av一区二 | 在线黄色免费 | 亚洲欧洲国产日韩精品 | av电影在线免费观看 | 国产三级香港三韩国三级 | 亚洲三区在线 | 国产精品成人一区二区三区吃奶 | 天天激情综合 | 国产 在线观看 | 色91在线| 超碰在线97免费 | 国产精品成久久久久三级 | 国产成人久久精品77777综合 | 狠狠色丁香久久婷婷综合_中 | 久久99国产综合精品 | 亚洲好视频 | 久久色在线观看 | 国产999久久久 | 少妇bbw撒尿 | 午夜在线日韩 | 久久综合久色欧美综合狠狠 | www九九热 | 国产免费观看久久 | 日日夜夜亚洲 | 在线观看中文字幕第一页 | 亚洲成人av电影 | 日韩精品高清视频 | 久久人人精品 | 97电影手机版 | 五月婷网站 | www.久草.com | 狠狠地操 | 亚洲乱码久久 | 国产精品久久久久久久久久不蜜月 | 中文字幕色网站 | 成人a视频| 五月天婷婷在线观看视频 | 手机成人免费视频 | 精品96久久久久久中文字幕无 | 在线观看免费视频你懂的 | 日韩3区 | 美女视频黄网站 | 久久久黄视频 | 日韩在线一级 | 成年人在线 | 久久精品综合视频 | 国产999精品久久久久久麻豆 | 丁香婷婷色月天 | 国产精品麻豆99久久久久久 | 精品自拍网 | 狠狠操操操 | 中文字幕传媒 | www.久艹 | 国产一区二区三区久久久 | 91精品国产一区二区在线观看 | 久久这里只有精品久久 | 97色综合| 久久久香蕉视频 | 碰碰影院| 久草精品在线播放 | 在线免费观看av网站 | 久久不卡av| 亚洲精品国产精品久久99 | 亚洲欧洲久久久 | 免费影视大全推荐 | 色先锋av资源中文字幕 | 91天堂在线观看 | 亚洲一级理论片 | 亚洲精品福利在线观看 | 中文字幕国产精品一区二区 | 日韩在观看线 | 色av色av色av| 国产精品一区二区三区在线看 | 日韩三级在线观看 | 探花系列在线 | 中文免费在线观看 | 国产婷婷vvvv激情久 | 国产高清不卡一区二区三区 | 国产成人黄色网址 | 免费av视屏 | 国产精品理论片 | 欧美尹人 | 日韩毛片精品 | av在线免费在线 | 深夜男人影院 | 亚洲最大av | 欧美日韩国产在线一区 | 人人澡超碰碰 | 久草电影免费在线观看 | 91视频91自拍 | 久久久久女人精品毛片九一 | 国产精品99久久久久久宅男 | 免费黄色网址网站 | 精品久久久久一区二区国产 | 免费观看9x视频网站在线观看 | 色吊丝在线永久观看最新版本 | 美女视频黄是免费的 | 免费观看的黄色片 | 人人插人人做 | 天天操天天操天天操天天操 | 一级做a爱片性色毛片www | 久久99久久99精品中文字幕 | 九九热视频在线免费观看 | 午夜电影久久 |