国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

Linux 的文件系統(tǒng)及文件緩存知識點整理

共 22133字,需瀏覽 45分鐘

 ·

2020-10-30 22:45

公眾號關(guān)注杰哥的IT之旅”,
選擇“星標”,重磅干貨,第一時間送達!


Linux的文件系統(tǒng)特點

  • 文件系統(tǒng)要有嚴格的組織形式,使得文件能夠以塊為單位進行存儲。

  • 文件系統(tǒng)中也要有索引區(qū),用來方便查找一個文件分成的多個塊都存放在了什么位置。

  • 如果文件系統(tǒng)中有的文件是熱點文件,近期經(jīng)常被讀取和寫入,文件系統(tǒng)應該有緩存層。

  • 文件應該用文件夾的形式組織起來,方便管理和查詢。

  • Linux內(nèi)核要在自己的內(nèi)存里面維護一套數(shù)據(jù)結(jié)構(gòu),來保存哪些文件被哪些進程打開和使用。

總體來說,文件系統(tǒng)的主要功能梳理如下:

ext系列的文件系統(tǒng)的格式

inode與塊的存儲

硬盤分成相同大小的單元,我們稱為塊(Block)。一塊的大小是扇區(qū)大小的整數(shù)倍,默認是4K。在格式化的時候,這個值是可以設定的。

一大塊硬盤被分成了一個個小的塊,用來存放文件的數(shù)據(jù)部分。這樣一來,如果我們像存放一個文件,就不用給他分配一塊連續(xù)的空間了。我們可以分散成一個個小塊進行存放。這樣就靈活得多,也比較容易添加、刪除和插入數(shù)據(jù)。

inode就是文件索引的意思,我們每個文件都會對應一個inode;一個文件夾就是一個文件,也對應一個inode。

inode數(shù)據(jù)結(jié)構(gòu)如下:

struct ext4_inode {
    __le16  i_mode;     /* File mode */
    __le16  i_uid;      /* Low 16 bits of Owner Uid */
    __le32  i_size_lo;  /* Size in bytes */
    __le32  i_atime;    /* Access time */
    __le32  i_ctime;    /* Inode Change time */
    __le32  i_mtime;    /* Modification time */
    __le32  i_dtime;    /* Deletion Time */
    __le16  i_gid;      /* Low 16 bits of Group Id */
    __le16  i_links_count;  /* Links count */
    __le32  i_blocks_lo;    /* Blocks count */
    __le32  i_flags;    /* File flags */
......
    __le32  i_block[EXT4_N_BLOCKS];/* Pointers to blocks */
    __le32  i_generation;   /* File version (for NFS) */
    __le32  i_file_acl_lo;  /* File ACL */
    __le32  i_size_high;
......
};

inode里面有文件的讀寫權(quán)限i_mode,屬于哪個用戶i_uid,哪個組i_gid,大小是多少i_size_io,占用多少個塊i_blocks_io,i_atime是access time,是最近一次訪問文件的時間;i_ctime是change time,是最近一次更改inode的時間;i_mtime是modify time,是最近一次更改文件的時間等。

所有的文件都是保存在i_block里面。具體保存規(guī)則由EXT4_N_BLOCKS決定,EXT4_N_BLOCKS有如下的定義:

#define    EXT4_NDIR_BLOCKS        12
#define    EXT4_IND_BLOCK          EXT4_NDIR_BLOCKS
#define    EXT4_DIND_BLOCK         (EXT4_IND_BLOCK + 1)
#define    EXT4_TIND_BLOCK         (EXT4_DIND_BLOCK + 1)
#define    EXT4_N_BLOCKS           (EXT4_TIND_BLOCK + 1)

在ext2和ext3中,其中前12項直接保存了塊的位置,也就是說,我們可以通過i_block[0-11],直接得到保存文件內(nèi)容的塊。

但是,如果一個文件比較大,12塊放不下。當我們用到i_block[12]的時候,就不能直接放數(shù)據(jù)塊的位置了,要不然i_block很快就會用完了。

那么可以讓i_block[12]指向一個塊,這個塊里面不放數(shù)據(jù)塊,而是放數(shù)據(jù)塊的位置,這個塊我們稱為間接塊。如果文件再大一些,i_block[13]會指向一個塊,我們可以用二次間接塊。二次間接塊里面存放了間接塊的位置,間接塊里面存放了數(shù)據(jù)塊的位置,數(shù)據(jù)塊里面存放的是真正的數(shù)據(jù)。如果文件再大點,那么i_block[14]同理。

這里面有一個非常顯著的問題,對于大文件來講,我們要多次讀取硬盤才能找到相應的塊,這樣訪問速度就會比較慢。

為了解決這個問題,ext4做了一定的改變。它引入了一個新的概念,叫作Extents。比方說,一個文件大小為128M,如果使用4k大小的塊進行存儲,需要32k個塊。如果按照ext2或者ext3那樣散著放,數(shù)量太大了。但是Extents可以用于存放連續(xù)的塊,也就是說,我們可以把128M放在一個Extents里面。這樣的話,對大文件的讀寫性能提高了,文件碎片也減少了。

Exents是一個樹狀結(jié)構(gòu):

每個節(jié)點都有一個頭,ext4_extent_header可以用來描述某個節(jié)點。

struct ext4_extent_header {
    __le16  eh_magic;   /* probably will support different formats */
    __le16  eh_entries; /* number of valid entries */
    __le16  eh_max;     /* capacity of store in entries */
    __le16  eh_depth;   /* has tree real underlying blocks? */
    __le32  eh_generation;  /* generation of the tree */
};

eh_entries表示這個節(jié)點里面有多少項。這里的項分兩種,如果是葉子節(jié)點,這一項會直接指向硬盤上的連續(xù)塊的地址,我們稱為數(shù)據(jù)節(jié)點ext4_extent;如果是分支節(jié)點,這一項會指向下一層的分支節(jié)點或者葉子節(jié)點,我們稱為索引節(jié)點ext4_extent_idx。這兩種類型的項的大小都是12個byte。

/*
 * This is the extent on-disk structure.
 * It's used at the bottom of the tree.
 */

struct ext4_extent {
    __le32  ee_block;   /* first logical block extent covers */
    __le16  ee_len;     /* number of blocks covered by extent */
    __le16  ee_start_hi;    /* high 16 bits of physical block */
    __le32  ee_start_lo;    /* low 32 bits of physical block */
};
/*
 * This is index on-disk structure.
 * It's used at all the levels except the bottom.
 */

struct ext4_extent_idx {
    __le32  ei_block;   /* index covers logical blocks from 'block' */
    __le32  ei_leaf_lo; /* pointer to the physical block of the next *
                 * level. leaf or next index could be there */

    __le16  ei_leaf_hi; /* high 16 bits of physical block */
    __u16   ei_unused;
};

如果文件不大,inode里面的i_block中,可以放得下一個ext4_extent_header和4項ext4_extent。所以這個時候,eh_depth為0,也即inode里面的就是葉子節(jié)點,樹高度為0。

如果文件比較大,4個extent放不下,就要分裂成為一棵樹,eh_depth>0的節(jié)點就是索引節(jié)點,其中根節(jié)點深度最大,在inode中。最底層eh_depth=0的是葉子節(jié)點。

除了根節(jié)點,其他的節(jié)點都保存在一個塊4k里面,4k扣除ext4_extent_header的12個byte,剩下的能夠放340項,每個extent最大能表示128MB的數(shù)據(jù),340個extent會使你的表示的文件達到42.5GB。

inode位圖和塊位圖

inode的位圖大小為4k,每一位對應一個inode。如果是1,表示這個inode已經(jīng)被用了;如果是0,則表示沒被用。block的位圖同理。

在Linux操作系統(tǒng)里面,想要創(chuàng)建一個新文件,會調(diào)用open函數(shù),并且參數(shù)會有O_CREAT。這表示當文件找不到的時候,我們就需要創(chuàng)建一個。那么open函數(shù)的調(diào)用過程大致是:要打開一個文件,先要根據(jù)路徑找到文件夾。如果發(fā)現(xiàn)文件夾下面沒有這個文件,同時又設置了O_CREAT,就說明我們要在這個文件夾下面創(chuàng)建一個文件。

創(chuàng)建一個文件,那么就需要創(chuàng)建一個inode,那么就會從文件系統(tǒng)里面讀取inode位圖,然后找到下一個為0的inode,就是空閑的inode。對于block位圖,在寫入文件的時候,也會有這個過程。

文件系統(tǒng)的格式

數(shù)據(jù)塊的位圖是放在一個塊里面的,共4k。每位表示一個數(shù)據(jù)塊,共可以表示個數(shù)據(jù)塊。如果每個數(shù)據(jù)塊也是按默認的4K,最大可以表示空間為個byte,也就是128M,那么顯然是不夠的。

這個時候就需要用到塊組,數(shù)據(jù)結(jié)構(gòu)為ext4_group_desc,這里面對于一個塊組里的inode位圖bg_inode_bitmap_lo、塊位圖bg_block_bitmap_lo、inode列表bg_inode_table_lo,都有相應的成員變量。

這樣一個個塊組,就基本構(gòu)成了我們整個文件系統(tǒng)的結(jié)構(gòu)。因為塊組有多個,塊組描述符也同樣組成一個列表,我們把這些稱為塊組描述符表。

我們還需要有一個數(shù)據(jù)結(jié)構(gòu),對整個文件系統(tǒng)的情況進行描述,這個就是超級塊ext4_super_block。里面有整個文件系統(tǒng)一共有多少inode,s_inodes_count;一共有多少塊,s_blocks_count_lo,每個塊組有多少inode,s_inodes_per_group,每個塊組有多少塊,s_blocks_per_group等。這些都是這類的全局信息。

最終,整個文件系統(tǒng)格式就是下面這個樣子。

默認情況下,超級塊和塊組描述符表都有副本保存在每一個塊組里面。防止這些數(shù)據(jù)丟失了,導致整個文件系統(tǒng)都打不開了。

由于如果每個塊組里面都保存一份完整的塊組描述符表,一方面很浪費空間;另一個方面,由于一個塊組最大128M,而塊組描述符表里面有多少項,這就限制了有多少個塊組,128M * 塊組的總數(shù)目是整個文件系統(tǒng)的大小,就被限制住了。

因此引入Meta Block Groups特性。

首先,塊組描述符表不會保存所有塊組的描述符了,而是將塊組分成多個組,我們稱為元塊組(Meta Block Group)。每個元塊組里面的塊組描述符表僅僅包括自己的,一個元塊組包含64個塊組,這樣一個元塊組中的塊組描述符表最多64項。

我們假設一共有256個塊組,原來是一個整的塊組描述符表,里面有256項,要備份就全備份,現(xiàn)在分成4個元塊組,每個元塊組里面的塊組描述符表就只有64項了,這就小多了,而且四個元塊組自己備份自己的。

根據(jù)圖中,每一個元塊組包含64個塊組,塊組描述符表也是64項,備份三份,在元塊組的第一個,第二個和最后一個塊組的開始處。

如果開啟了sparse_super特性,超級塊和塊組描述符表的副本只會保存在塊組索引為0、3、5、7的整數(shù)冪里。所以上圖的超級塊只在索引為0、3、5、7等的整數(shù)冪里。

目錄的存儲格式

其實目錄本身也是個文件,也有inode。inode里面也是指向一些塊。和普通文件不同的是,普通文件的塊里面保存的是文件數(shù)據(jù),而目錄文件的塊里面保存的是目錄里面一項一項的文件信息。這些信息我們稱為ext4_dir_entry。

在目錄文件的塊中,最簡單的保存格式是列表,每一項都會保存這個目錄的下一級的文件的文件名和對應的inode,通過這個inode,就能找到真正的文件。第一項是“.”,表示當前目錄,第二項是“…”,表示上一級目錄,接下來就是一項一項的文件名和inode。

如果在inode中設置EXT4_INDEX_FL標志,那么就表示根據(jù)索引查找文件。索引項會維護一個文件名的哈希值和數(shù)據(jù)塊的一個映射關(guān)系。

如果我們要查找一個目錄下面的文件名,可以通過名稱取哈希。如果哈希能夠匹配上,就說明這個文件的信息在相應的塊里面。然后打開這個塊,如果里面不再是索引,而是索引樹的葉子節(jié)點的話,那里面還是ext4_dir_entry的列表,我們只要一項一項找文件名就行。通過索引樹,我們可以將一個目錄下面的N多的文件分散到很多的塊里面,可以很快地進行查找。

Linux中的文件緩存

ext4文件系統(tǒng)層

對于ext4文件系統(tǒng)來講,內(nèi)核定義了一個ext4_file_operations。

const struct file_operations ext4_file_operations = {
......
    .read_iter  = ext4_file_read_iter,
    .write_iter = ext4_file_write_iter,
......
}

ext4_file_read_iter會調(diào)用generic_file_read_iter,ext4_file_write_iter會調(diào)用__generic_file_write_iter。

ssize_t
generic_file_read_iter(struct kiocb *iocb, struct iov_iter *iter)
{
......
    if (iocb->ki_flags & IOCB_DIRECT) {
......
        struct address_space *mapping = file->f_mapping;
......
        retval = mapping->a_ops->direct_IO(iocb, iter);
    }
......
    retval = generic_file_buffered_read(iocb, iter, retval);
}


ssize_t __generic_file_write_iter(struct kiocb *iocb, struct iov_iter *from)
{
......
    if (iocb->ki_flags & IOCB_DIRECT) {
......
        written = generic_file_direct_write(iocb, from);
......
    } else {
......
        written = generic_perform_write(file, from, iocb->ki_pos);
......
    }
}

generic_file_read_iter和__generic_file_write_iter有相似的邏輯,就是要區(qū)分是否用緩存。因此,根據(jù)是否使用內(nèi)存做緩存,我們可以把文件的I/O操作分為兩種類型。

第一種類型是緩存I/O。大多數(shù)文件系統(tǒng)的默認I/O操作都是緩存I/O。對于讀操作來講,操作系統(tǒng)會先檢查,內(nèi)核的緩沖區(qū)有沒有需要的數(shù)據(jù)。如果已經(jīng)緩存了,那就直接從緩存中返回;否則從磁盤中讀取,然后緩存在操作系統(tǒng)的緩存中。對于寫操作來講,操作系統(tǒng)會先將數(shù)據(jù)從用戶空間復制到內(nèi)核空間的緩存中。這時對用戶程序來說,寫操作就已經(jīng)完成。至于什么時候再寫到磁盤中由操作系統(tǒng)決定,除非顯式地調(diào)用了sync同步命令。

第二種類型是直接IO,就是應用程序直接訪問磁盤數(shù)據(jù),而不經(jīng)過內(nèi)核緩沖區(qū),從而減少了在內(nèi)核緩存和用戶程序之間數(shù)據(jù)復制。

如果在寫的邏輯__generic_file_write_iter里面,發(fā)現(xiàn)設置了IOCB_DIRECT,則調(diào)用generic_file_direct_write,里面同樣會調(diào)用address_space的direct_IO的函數(shù),將數(shù)據(jù)直接寫入硬盤。

帶緩存的寫入操作

我們先來看帶緩存寫入的函數(shù)generic_perform_write。

ssize_t generic_perform_write(struct file *file,
                struct iov_iter *i, loff_t pos)
{
    struct address_space *mapping = file->f_mapping;
    const struct address_space_operations *a_ops = mapping->a_ops;
    do {
        struct page *page;
        unsigned long offset;   /* Offset into pagecache page */
        unsigned long bytes;    /* Bytes to write to page */
        status = a_ops->write_begin(file, mapping, pos, bytes, flags,
                        &page, &fsdata);
        copied = iov_iter_copy_from_user_atomic(page, i, offset, bytes);
        flush_dcache_page(page);
        status = a_ops->write_end(file, mapping, pos, bytes, copied,
                        page, fsdata);
        pos += copied;
        written += copied;


        balance_dirty_pages_ratelimited(mapping);
    } while (iov_iter_count(i));
}

循環(huán)中主要做了這幾件事:

  • 對于每一頁,先調(diào)用address_space的write_begin做一些準備;

  • 調(diào)用iov_iter_copy_from_user_atomic,將寫入的內(nèi)容從用戶態(tài)拷貝到內(nèi)核態(tài)的頁中;

  • 調(diào)用address_space的write_end完成寫操作;

  • 調(diào)用balance_dirty_pages_ratelimited,看臟頁是否太多,需要寫回硬盤。所謂臟頁,就是寫入到緩存,但是還沒有寫入到硬盤的頁面。

對于第一步,調(diào)用的是ext4_write_begin來說,主要做兩件事:

第一做日志相關(guān)的工作。

ext4是一種日志文件系統(tǒng),是為了防止突然斷電的時候的數(shù)據(jù)丟失,引入了日志(Journal)模式。日志文件系統(tǒng)比非日志文件系統(tǒng)多了一個Journal區(qū)域。文件在ext4中分兩部分存儲,一部分是文件的元數(shù)據(jù),另一部分是數(shù)據(jù)。元數(shù)據(jù)和數(shù)據(jù)的操作日志Journal也是分開管理的。你可以在掛載ext4的時候,選擇Journal模式。這種模式在將數(shù)據(jù)寫入文件系統(tǒng)前,必須等待元數(shù)據(jù)和數(shù)據(jù)的日志已經(jīng)落盤才能發(fā)揮作用。這樣性能比較差,但是最安全。

另一種模式是order模式。這個模式不記錄數(shù)據(jù)的日志,只記錄元數(shù)據(jù)的日志,但是在寫元數(shù)據(jù)的日志前,必須先確保數(shù)據(jù)已經(jīng)落盤。這個折中,是默認模式。

還有一種模式是writeback,不記錄數(shù)據(jù)的日志,僅記錄元數(shù)據(jù)的日志,并且不保證數(shù)據(jù)比元數(shù)據(jù)先落盤。這個性能最好,但是最不安全。

第二調(diào)用grab_cache_page_write_begin來,得到應該寫入的緩存頁。

struct page *grab_cache_page_write_begin(struct address_space *mapping,
                    pgoff_t index, unsigned flags)

{
    struct page *page;
    int fgp_flags = FGP_LOCK|FGP_WRITE|FGP_CREAT;
    page = pagecache_get_page(mapping, index, fgp_flags,
            mapping_gfp_mask(mapping));
    if (page)
        wait_for_stable_page(page);
    return page;
}

在內(nèi)核中,緩存以頁為單位放在內(nèi)存里面,每一個打開的文件都有一個struct file結(jié)構(gòu),每個struct file結(jié)構(gòu)都有一個struct address_space用于關(guān)聯(lián)文件和內(nèi)存,就是在這個結(jié)構(gòu)里面,有一棵樹,用于保存所有與這個文件相關(guān)的的緩存頁。

對于第二步,調(diào)用iov_iter_copy_from_user_atomic。先將分配好的頁面調(diào)用kmap_atomic映射到內(nèi)核里面的一個虛擬地址,然后將用戶態(tài)的數(shù)據(jù)拷貝到內(nèi)核態(tài)的頁面的虛擬地址中,調(diào)用kunmap_atomic把內(nèi)核里面的映射刪除。

size_t iov_iter_copy_from_user_atomic(struct page *page,
        struct iov_iter *i, unsigned long offset, size_t bytes)
{
    char *kaddr = kmap_atomic(page), *p = kaddr + offset;
    iterate_all_kinds(i, bytes, v,
        copyin((p += v.iov_len) - v.iov_len, v.iov_base, v.iov_len),
        memcpy_from_page((p += v.bv_len) - v.bv_len, v.bv_page,
                 v.bv_offset, v.bv_len),
        memcpy((p += v.iov_len) - v.iov_len, v.iov_base, v.iov_len)
    )
    kunmap_atomic(kaddr);
    return bytes;
}

第三步中,調(diào)用ext4_write_end完成寫入。這里面會調(diào)用ext4_journal_stop完成日志的寫入,會調(diào)用block_write_end->__block_commit_write->mark_buffer_dirty,將修改過的緩存標記為臟頁??梢钥闯觯鋵嵥^的完成寫入,并沒有真正寫入硬盤,僅僅是寫入緩存后,標記為臟頁。

第四步,調(diào)用 balance_dirty_pages_ratelimited,是回寫臟頁。

/**
 * balance_dirty_pages_ratelimited - balance dirty memory state
 * @mapping: address_space which was dirtied
 *
 * Processes which are dirtying memory should call in here once for each page
 * which was newly dirtied.  The function will periodically check the system's
 * dirty state and will initiate writeback if needed.
  */

void balance_dirty_pages_ratelimited(struct address_space *mapping)
{
    struct inode *inode = mapping->host;
    struct backing_dev_info *bdi = inode_to_bdi(inode);
    struct bdi_writeback *wb = NULL;
    int ratelimit;
......
    if (unlikely(current->nr_dirtied >= ratelimit))
        balance_dirty_pages(mapping, wb, current->nr_dirtied);
......
}

在balance_dirty_pages_ratelimited里面,發(fā)現(xiàn)臟頁的數(shù)目超過了規(guī)定的數(shù)目,就調(diào)用balance_dirty_pages->wb_start_background_writeback,啟動一個背后線程開始回寫。

另外還有幾種場景也會觸發(fā)回寫:

  • 用戶主動調(diào)用sync,將緩存刷到硬盤上去,最終會調(diào)用wakeup_flusher_threads,同步臟頁;

  • 當內(nèi)存十分緊張,以至于無法分配頁面的時候,會調(diào)用free_more_memory,最終會調(diào)用wakeup_flusher_threads,釋放臟頁;

  • 臟頁已經(jīng)更新了較長時間,時間上超過了設定時間,需要及時回寫,保持內(nèi)存和磁盤上數(shù)據(jù)一致性。

帶緩存的讀操作

看帶緩存的讀,對應的是函數(shù)generic_file_buffered_read。

static ssize_t generic_file_buffered_read(struct kiocb *iocb,
        struct iov_iter *iter, ssize_t written)

{
    struct file *filp = iocb->ki_filp;
    struct address_space *mapping = filp->f_mapping;
    struct inode *inode = mapping->host;
    for (;;) {
        struct page *page;
        pgoff_t end_index;
        loff_t isize;
        page = find_get_page(mapping, index);
        if (!page) {
            if (iocb->ki_flags & IOCB_NOWAIT)
                goto would_block;
            page_cache_sync_readahead(mapping,
                    ra, filp,
                    index, last_index - index);
            page = find_get_page(mapping, index);
            if (unlikely(page == NULL))
                goto no_cached_page;
        }
        if (PageReadahead(page)) {
            page_cache_async_readahead(mapping,
                    ra, filp, page,
                    index, last_index - index);
        }
        /*
         * Ok, we have the page, and it's up-to-date, so
         * now we can copy it to user space...
         */

        ret = copy_page_to_iter(page, offset, nr, iter);
    }
}

在generic_file_buffered_read函數(shù)中,我們需要先找到page cache里面是否有緩存頁。如果沒有找到,不但讀取這一頁,還要進行預讀,這需要在page_cache_sync_readahead函數(shù)中實現(xiàn)。預讀完了以后,再試一把查找緩存頁。

如果第一次找緩存頁就找到了,我們還是要判斷,是不是應該繼續(xù)預讀;如果需要,就調(diào)用page_cache_async_readahead發(fā)起一個異步預讀。

最后,copy_page_to_iter會將內(nèi)容從內(nèi)核緩存頁拷貝到用戶內(nèi)存空間。

作者:luozhiyun
來源:https://www.cnblogs.com/luozhiyun/p/13061199.html

如果您覺得這篇文章對您有點用的話,麻煩您為本文來個四連:轉(zhuǎn)發(fā)分享、點贊、點在看、留言,因為這將是我寫作與分享更多優(yōu)質(zhì)文章的最強動力!


本公眾號全部博文已整理成一個目錄,請在公眾號后臺回復「m」獲??!

推薦閱讀:

1、如何快速將 Linux 系統(tǒng)制作成 ISO 鏡像文件?
2、深度好文:Linux 系統(tǒng)內(nèi)存知識
3、Linux 進程總結(jié)
4、一行代碼如何隱藏 Linux 進程?
5、盤點多款國產(chǎn) Linux 桌面操作系統(tǒng)
6、你不知道的 Linux 使用技巧
7、不知道這十項 Linux 常識,就別說自己玩過 Linux!
8、實用!五款新型 Linux 命令行工具
9、Linux 自帶神器 logrotate 詳解!
10、13 款 Linux 比較實用的工具
關(guān)注微信公眾號「杰哥的IT之旅」,后臺回復「1024」查看更多內(nèi)容,回復「加群備注:地區(qū)-職業(yè)方向-昵稱 即可加入讀者交流群。

       
         
點個[在看],是對杰哥最大的支持!
瀏覽 38
點贊
評論
收藏
分享

手機掃一掃分享

分享
舉報
評論
圖片
表情
推薦
點贊
評論
收藏
分享

手機掃一掃分享

分享
舉報

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 性感91影院| 色色天堂成人电影| 永久免费视频| 精品久久一区二区| 婷婷五月天激情电影| 蜜桃av久久久亚洲精品| 影音先锋资源| 五月丁香影院| 精品视频99| 亚洲电影AV| 狠狠ri| 日韩一级电影在线| 一级片免费观看| 超碰啪啪| 又黄又爽无遮挡| 成人在线一区二区三区| 欧洲在线观看| 西西4444WWW无视频| 男人天堂影院| 欧美视频免费在线观看| 五月天在线观看| 亚洲日韩在线免费观看| 伊人久久大香蕉国产| 俺来了俺去了www色官网| 97精品| 国产成人小视频| 久久超碰精品| 黄色精品网站| 国产黄片一区二区三区| 91人人妻人人做人人爽| 亚洲有码人妻| sesese| 色噜噜av| 国产精品爽爽久久久久| 蜜臀久久99精品久久久兰草影视 | 伊人综合视频| 亚洲男女免费视频| 91精品国产一区三一| 99久99| 国产精品欧美综合在线| 色综合天天| 亚洲免费成人| 欧洲一区二区三区| AV无码中文| 中文字幕有码在线看| 翔田千里一区二区三区精品播放| 国产精品AV一区| 亚洲精品国产成人无码区在线| 桃色av| 亚洲精品福利| 国产综合AV| 免费看操片| 丁香六月综合激情| 91嫩操| 午夜激情毛片| 伊人免费视频在线观看| 一区二区人妻| 91逼逼| 乱伦中文| 美女被操免费网站| 色444| 最近中文字幕mv第三季歌词| 97久久人人| 午夜成人精品| 五月婷婷色播| 亚洲成人不卡| A片视频播放| 人妻无码中文字幕蜜桃| 草久av| 秋霞网一区二区| 亚洲精品国产成人无码区在线| 成人免费A片| 日韩一二区| 男女午夜福利| 成人网站在线观看视频| 91精品导航| 欧美群交在线观看| 色悠久久久| 久久久久久久久久8888| 亚洲精品视频免费看| 免费三级毛片| 香蕉视频成人在线| 亚洲肏屄网| 羞羞午夜| 亚洲精品久久久久毛片A级绿茶| 国产午夜精品一区二区三区嫩A| av在线无码观看| 精品人妻无码一区二区三区| 伊人久久大香蕉视频| 日本亚洲欧洲免费| 天天精品无码| 97这里只有精品| 农村新婚夜一级A片| 日韩人妻无码一区二区三区七区 | 永久免费黄色视频| 亚洲码无人客一区二区三区| 俄罗斯白嫩BBwBBwBBw91| 男女AV网站| 成人动漫| 97综合视频| 波多野结衣AV在线观看| 久久a视频| 免费在线观看亚洲| www,久久久| 人人干超碰| 欧美成人精品三级网站| 亚洲黄色一级电影| 丰满熟妇人妻无码视频| 老熟女伦一区二区三区| 在线观看视频国产| 免费久草视频| 日韩无码中文字幕视频| 国产aa片| 三级午夜在线无码| 五月丁香999| 婷婷五月丁香激情| 再深点灬好爽灬轻点久久国产| 天堂а√在线中文在线新版| 国产无套内射在线观看| 久久黑人| A视频在线观看| 国产精品成人午夜福利| 九哥操逼视频| 狼人久久| 亚洲AV在线观看| 成人黄色视频网站| 久久国产黄色一级片| 亚洲AVA| 无码伦理电影| 亚洲无码在线高清| 亚洲激情欧美激情| 欧美黄色一级网站| 日韩成人av在线| 欧美亚洲日韩在线观看| 成人日皮视频| 微熟女导航| 中文熟女| 国产在线拍揄自揄拍无码网站新闻| 人妻FrXXeeXXee护士| 免费成人黄片| 国产强伦轩免费视频在线| 婷婷五月天在线观看| 亚洲一级片| 翔田千里无码精品| 麻豆视频在线看| 52妺嘿嘿午夜福利在线| 色播网址| 激情一级| 东北老女人操逼| 久久午夜福利电影| 日韩操操操| 国产美女自拍视频| 亚洲黄色大片| 神马午夜精品95| 麻豆91免费视频| JIZZJIZZ国产精品喷水| 亚洲无码黄色片| 丰滿人妻一区二区三| 日韩无码免费电影| 日韩大片在线观看| 黄色视频网站在线观看免费| 特级毛片| 亚洲综合无码| 色婷婷视频一区二区| 鸭子av| 五月激情久久| 久久精品导航| 久久99精品久久久久久水蜜桃 | 柠檬AV导航| 亚洲日本国产| 操小骚逼视频| 韩国AV在线| 国产性交网站| 久久久久久黄| 国产h在线播放| 麻豆精品一区二区| 少妇超碰| 亚洲www.| 日本特级黄色毛片| 日韩三级一区二区| 精品三级网站| 亚洲无码视频专区| 欧美特黄AAAAAAAAA片| 三级黄色视频| 日韩aaa| 欧美日本一区二区三区| av手机天堂网| 大香蕉国产在线视频| 特级婬片AAAAAAA级| 色五月天婷婷| 91精品婷婷国产综合久久竹菊| 日韩综合色视频导航| 一道本无码免费视频| 亚洲区一区二| 五月天婷婷丁香网| 日韩欧美分区视频| 亚洲中文字幕AV| 韩国午夜激情| 2024av在线| 免费版成人久久幺| 欧美性受XXXX黑人XYX性爽冫 | 日本黄色a片| 美女操逼图| 久久91欧美特黄A片| 91九色口爆吞精| 亚洲成人一区二区在线观看| 亚洲最新在线观看| 作爱网站| 99伊人网| 在线观看黄色小视频| 亚洲色图欧美| av婷婷五月天| 91人妻在线视频| 亚洲综合自拍| 大香煮伊在75| 成人三级片网| 国产丝袜无码| 国产精品欧美7777777| 国产激情欧洲在线观看一区二区三区 | 狠狠操天天操| 蜜桃成人无码区免费视频网站| AV中文字幕在线播放| 影音先锋男人站| AV天堂国产| 亚洲日本无码50p| 日B无码| 国产成人av网站| 丁香五月天激情| 欧美日韩伊人| 在线视频久| 人人摸人人色| 五月婷婷丁香五月| 高清无码片| 一级看片免费视频| 日日拍夜夜拍| 亚洲中文字幕一区| 特黄A级毛片| www.97av| 欧美亚洲日本| 91人妻视频| 中文字幕在线无码观看| 久久久久麻豆V国产精华液好用吗 色噜噜狠狠一区二区三区牛牛影视 | 99re6热在线精品视频功能| 日韩人妻系列| 亚洲涩情91日韩一区二区| 精品国产久久久| 国产91综合一区在线观看| 韩国无码视频在线观看| 国产7777| 中文字幕有码在线观看| 婷婷在线观看免费| 欧美性爱导航| 2025中文字幕| 安徽妇搡BBBB搡BBBB,另类老妇| 免费黄色成人| 免费欧美性爱视频| 你懂的在线视频| 黄色小视频在线| 国产精品国产三级国产AⅤ原创| 麻豆精品久久久久久久99蜜桃| se99av| 蜜桃Av噜噜一区二区三区四区| 亚洲欧美激情小说| 大香蕉伊人久久| 久久久久99| 欧美精品在线观看视频| 欧美日在线| 在线成人视频网站大香蕉在线网站 | 天堂а√在线中文在线新版| 无码一区二区三区四区五区| 欧美三区四区| 国产作爱| 亚洲综合自拍| 欧美操逼小视频| 中文无码日本一级A片人| 天天爱天天射| 黄色网址在线观看视频| 999国产视频| 黄色片视频网站| 无码视频日韩| 国产精品久久久久久久久久久久久 | 国产免费黄色片| 亚洲日本三级片| 国产又爽又黄视频在线看| 91日日夜夜| 中文字幕观看| 亚州视频在线观看| 911久久| 东京热综合影院| 俺也去官网| 午夜成人小电影| 99草自拍| 天天爽日日澡| 久久久久成人片免费观看蜜芽| 国产午夜精品视频| 黄片视频免费播放| yw尤物| 91成全在线| 国产麻豆精品成人毛片| 亚洲成人网站在线观看| 91妻人人澡人人爽人人精品| 亚洲黄片视频| 北条麻妃无码在线视频| 日本成人黄色电影| 大香蕉操逼| 中文字幕无码免费| 99日韩| 麻豆精东一区二区欧美国产| 青青草性爱| 色婷婷AV国产精品| 午夜伦理福利| 亚洲69p| 日韩中文字幕在线观看| 欧美成人电影在线观看| 久久99热这里只频精品6学生| 高清无码片| 国产精品久久久久久久久久久久久| 伊人大香蕉网| 欧美熟妇高潮流白浆| 亚洲无码视频免费在线观看| 亚洲午夜福利一区二区三区| 成人久久久久| 三级免费无限AV| 88在线无码精品秘入口九色| 无码AV网站| 91精品久久久久久综合五月天| 欧美极品视频| 大屌av| a片免费在线| 高清无码网站| 在线观看18s| 日韩无码一二三| 亚洲一级一级黄色| 九一九色国产| 成人久久AV| 波多野结衣久久中文字幕| 亚洲无码精品视频| 五月丁香视频在线观看| 国产综合久久| 成人动漫| 国产精品久久久久久久久久王安宇| 大荫蒂精品另类| 99精品免费| 淫色网址| 安徽妇搡BBBB搡BBBB| 人妻超碰在线| 国产超碰| 伊人五月在线| 天天干天天日天天射| 成人免费观看的毛视频| 麻豆精品秘国产| 水蜜桃一区二区| 靠逼网站免费观看| 广东BBW搡BBBB搡| 97人妻人人| 黄片视频网站| 日韩1234区| 亚洲无码视频一区| 亚洲波多野结衣| 99精品人妻| 特级爱爱视频| 美女黄色视频网站| 影音先锋婷婷| 艹逼视频网站| 欧美色图狠狠干| 91久久国产性奴调教| 国产成人久久精品麻豆二区| 人妻大屁股-91Porn| AV大全在线免费观看| 青娱乐久久| av一二三区| 欧美一级黃色A片免费看小优视频| 五月天亚洲无码| 无码一道本一区二区无码| 国产精品色呦呦| 午夜av福利| 中文字幕无吗| 激情小说激情视频| 黑人在线播放| 亚洲女人被黑人巨大进入| 免费爱爱网站| 国产精品无码永久免费不卡| 琪琪色五月天| 日韩视频一区二区| 黄色在线播放| 岛国AV在线| 91亚洲精选| 国产激情欧洲在线观看一区二区三区| 日韩91在线| 翔田千里无码在线观看| 国产在线视频一区二区三区| 久久无码影视| 亚洲精品成人av无码| 色噜噜一区二区| 亚洲AV无码成人精品区欧洲| 日本亚洲精品秘入口A片| 91久久综合亚洲鲁鲁五月天| 六月综合网| 蜜臀久久99精品久久久晴天影视| 黄色操逼大片| 欧美三级在线| 99热在线观看免费精品| 91麻豆精品91久久久久同性| 人妻丰满熟妇av无码区| 在线中文字幕第一页| 人妻精品一区二区三区| 日韩少妇无码| 蜜桃视频网| 内射视频在线免费观看| 午夜成人大片| 高清日韩无码视频| 精品无人区无码乱码毛片国产| 欧美另类视频| 3p视频网站| h片在线免费观看| 亚洲精品一二三| 亚洲人妻电影一区| 日韩成人无码电影| 国产精品一区二区三区不卡| 蜜桃视频网站| 无码AV动漫| 美日韩一区二区| 欧美性夜黄A片爽爽免费视频| 无套内射免费视频| 国产又大又粗又长| 色色激情网| 淫秽视频免费看| 成人大香蕉网站精品免费| 中文字幕H| 91在线无码精品秘入口动作| 夜夜骚av.一区二区三区四区 | 亚洲AV无码国产综合专区| 午夜成人黄色| 欧美日视频| 国产乱论视频| 五月天青青草超碰免费公开在线观看 | 国产A片免费视频| 午夜福利资源| 你懂得视频| 久草视频在线播放| 另类老太婆性BBWBBw| 亚洲欧美视频| 五月天操逼| 日韩欧美成人在线视频| 黄色插逼视频| 日韩有码第一页| 亚洲欧美成人视频| 成人三级AV在线| 青青艹在线视频| 好男人一区二区三区在线观看| 麻豆性爱| 操逼在线看| 狠狠干B| 日韩一区二区三区四区| AV小说在线观看| 久久精品性爱| 麻豆视频在线观看| 欧美V∧| 日日碰狠狠躁久久躁婷婷| 熟女人妻人妻の视频| 日韩三级片在线视频| 亚洲国产成人va| 九九热精品视频在线观看| 婷婷综合一区| 日本午夜三级视频| 国产jk在线观看| 坏男人内射老太太| 亚洲视频欧洲视频| 久久精品三级片| 日韩三级一区| 大鸡巴操小逼视频| 日韩婷婷| 大香蕉国产精品视频| 亚洲AV无码成人精品区h麻豆| 中文字幕有码在线观看| 亚洲天堂在线观看免费| 国产中文字字幕乱码无限| 亚洲天堂本一| 91含羞草www·Com| 日日搔AV一区二区三区| 久久er视频| 亚洲黄色免费网站| A片网站在线观看| 中文字幕H| 中文字幕AV在线播放| 欧美高清视频| 影音先锋91久久网| 亚洲精品中文字幕在线| 91人妻人人澡人人爽人人| 婷婷欧美日韩| 综合久久av| 国产XXXX| 国产精品免费观看视频| 91久九九| 日韩黄色A级片| 免费观看av| 无码专区在线观看| 18禁网站在线播放| 蜜臀AⅤ在线| 亚洲天堂一区二区三区| 又黄又爽的视频| 影音先锋女人aV鲁色资源网站| 日韩欧美激情| 最新中文字幕免费MV第一季歌词| 九一无码| 亚洲高清视频一区| 久草99| 无码一区二区三区四区五区六区 | 91香蕉在线看| 国产中文字幕在线观看| 亚洲视频免费完整版在线播放| 麻豆精品秘国产| 欧美老妇大BBBBXXXX| 日韩三级视频| 97香蕉久久国产超碰青草专区| 99国产在线观看免费视频| 91在线无码视频| 黄网站免费观看| 中文字幕在线观看网址最新地址| 东京热黄色电影| 日韩美女在线视频| 亚洲秘无码一区二区三区欧美| 正在播放JUQ-878木下凛凛子 | HEZ-502搭讪绝品人妻系列| 大香蕉国产在线视频| 国产—级a毛—a毛免费视频| 日韩在线观看免费| H片在线播放| 亚洲成人视频免费在线观看| 久久国产精品电影| 成人黄色大香蕉| 日韩无码国产精品| 欧美黄色免费观看| 无码AV动漫| 先锋AV资源在线| 黄色免费a级片一级片| 777777视频| 狠狠干2021| 国产熟女一区| 国产三级图片| 国产真人一级a爱做片| 一区二区三区在线观看| 久久久久亚洲AV成人网人人软件 | 另类老妇奶性BBWBBwBBw| 无码日韩电影| 中文字幕av高清片,中文在线观看| A片在线免费看| 不卡视频一区二区| 天天爽天天摸| 色哟哟网站| 日本黄A级A片国产免费| 99久久99| 日韩精品视频在线免费观看| 性爱麻豆| 日韩高清无码观看| 亚洲国产成人av| 2025av中文字幕| 久久久国产精品黄毛片| 亚洲无码黄片| 俺来也俺去也www色官网| 亚洲精品自拍偷拍| 综合狠狠| 国产在线| 怡春院免费视频| AV无码网站| 亚洲电影无码| 国产探花在线观看| 亚洲一区亚洲二区| AV在线播放中文字幕| 久草黄色电影在线观看| 国产做受91| 毛片3| 精品国产欧美| 俺去俺来也在线www色情网| 国产伦精品一区二区三区妓女下载| 韩日A片| 在线观看免费黄色视频| 国产suv精品一区二区| 免费无码婬片AAAA片直播| 无码内射在线播放| A片在线观看网站| 国产精品啪啪啪啪| 西西www444无码大胆| 色AV高清| 久久久999精品日韩一区二区| 91久久国产性奴调教| 一区视频在线| 免费无码婬片AAAA片老婦| 久久成人在线| 竹菊av一区二区三区四区五区 | 天堂网2025| 国产真人无码| 一道本视频在线免费观看| 特级丰满少妇免费观看| 中文无码AV| 午夜福利欧美| 尤物网在线| 国产美女全裸网站| 欧美浮力影院| 18精品爽国产冫绿帽社| 在线观看av资源| 男人的天堂婷婷| 黄色电影天堂网站| 另类老妇性BBBWBBW| 色老板在线观看| 香蕉久久久| 欧美成人大香蕉| 性插视频| 国模一区二区| 色色色亚洲| 国产免费无码视频| 中文四区| 亚洲无码免费网站| 亚洲国产精品成人综合色在线婷婷 | 亚洲精品无码免费| 777米奇视频| 日韩AV成人无码久久电影| 操综合| 一级黄色在线观看| 麻豆传媒视频观看| 91丨人妻丨国产丨丝袜| 日韩一区二区三区视频| 中文字幕亚洲在线观看| 五月天国产精品| 日韩成人无码人妻| 天天色天天爱| 男人的天堂亚洲| 黑人猛躁白人BBBBBBBBB| 国产乱子伦一区二区三区在线观看| 亚洲乱伦图| 免费草逼网站| 中文资源在线a| 国产一区二区三区四区五区六区七区| 国产婷婷精品| 国产小视频免费在线观看| 国产无码一| 翔田千里无码在线观看| 777免费观看成人电影视频| 日韩不卡| 99视频精品| 欧美精产国品一二三产品动漫| 午夜精品秘一区二区三区| 国产黄色片在线观看| 欧美日韩国产成人| 91成人精品视频| 午夜无码在线| 国产在线观看一区二区| 成人做爰黄AAA片免费直播岛国 | www.蜜桃av| 天天色天天色| 三级理论网站| 毛片天天干| 国产精品毛片VA一区二区三区 | 国产粉嫩在线观看| 国产三级黄| 欧美人妻无码| 日韩有码中文字幕在线观看| 精品国产毛片| 久久免费视频,久久免费视频| 99自拍网| 欧美日韩在线视频一区| 色黄网站在线观看| 99综合久久| 无码在线免费播放| 国产熟女一区| 91麻豆免费视频| 91伊人| 欧美人妻中文字幕| 波多野结衣亚洲视频| 亚洲.欧美.丝袜.中文.综合 | 国产精品无码毛片| 久久成人18免费网站波多野结衣 | 亚洲欧美v在线视频| 亚洲激色| 中文字幕超清在线观看| 我想看操逼| 麻豆视频免费观看| 大香蕉伊人婷婷| 精品一区二区三区免费| 欧美浮力影院| 高潮AV在线观看| 91人妻人人澡人人爽人人精| 欧美日韩第一页| 999免费视频| 天天肏屄| jiujiuav| 亚洲秘一区二区三区-精品亚洲二区- | 韩国精品无码一区二区三区18| 久久久噜噜噜久久中文字幕色伊伊 | 日韩经典视频在线播放| 手机看片福利永久| 天天想天天干| 日韩啪啪片| 黄色视频免费| 欧美一级A片在免费看| 一区二区三区无码专区| 天天爽夜夜爽夜夜爽精品| 在线免费观看a| 热久久伊人| 亚洲一区三区| 国产成人精品123区免费视频| 91视频色| 亚洲一级在线观看| 涩涩99| 国产日韩欧美在线观看| 天堂亚洲AV无码精品成人| 精品国产乱码一区二区| 中文字幕五月久久婷婷| 一卡二卡久久| 国产精品人人人人| 99久热在线精品| 成人激情免费视频| 国产黄色一级| 国产亚洲一区二区三区| 国产又爽又黄免费视频免费 | AV第一福利大全导航| 婷婷午夜精品久久久久久| 久久另类TS人妖一区二区| 欧美性夜黄A片爽爽免费视频| 亚洲天堂成人网| 午夜在线视频| 青草福利| 色多多毛片| 色综合网址| 亚洲欧美日本在线| a片在线观看免费| 2025最新国产成人精品| 人人插人人爽| 亚洲国产成人电影| 色婷| 91免费观看视频| 日本少妇午夜福利| 大香蕉视频国产| 51嘿嘿嘿国产精品伦理| 四虎在线免费视频| 人妻AV一区| 蜜桃av无码一区二区三区| 香蕉操逼视频| 丁香色婷婷| 亚洲一级片| 伊人蕉 | 91肏屄视频| 91亚洲精品乱码久久久久久蜜桃 | 中文字幕在线观看高清| 亚洲自拍偷拍视频| 日韩在线一区二区| 亚洲成人免费福利| 最新中文字幕无码| 日韩AV电影网站| 国产免费av片| 日韩精品成人在线| 日本黄色视频在线| 辽宁模特张雪馨视频最新| 抽插逼| 99精品99| 91综合久久| 91无码在线视频| 色五月视频| 91精品人妻一区二区| 日本少妇久久| 影音先锋黄色资源| 日韩啪啪啪网站| 嫩草视频在线观看| 日韩无码性爱| 久久久久9999| 欧美日韩高清一区| 国产网站视频| 免费在线观看无码视频| 北条麻妃在线观看| 成人性爱在线观看| 亚洲AV无码第一区二区三区蜜桃| 精品乱子伦一区二区在线播放| 日本一级特黄大片AAAAA级| 99性爱| 亚洲欧美在线观看视频| 国产天堂| 性满足BBwBBWBBw| 美女性爱视频网站| 西西444WWW无码大胆知乎| 精品乱子伦一区二区三区免费播成 | 神马久久午夜| 欧亚无码| 黄色视频免费在线看| 欧美成人手机在线看片| 亚洲成人无码一区| 久久五月天婷婷| 天天干天天干| 青草久操| 欧美亚洲日韩在线观看| 美女久久久| 韩国无码精品| 影音先锋成人视频| 波多野结衣与黑人| 亚洲.欧美.丝袜.中文.综合| 99久久久久久| 一本道不卡色色| www.插逼| 一本大道东京热AV| 精品午夜福利| 午夜性爱福利| 国产精品无码乱伦| 北条麻妃在线一区二区| jizz在线观看| 欧美操逼逼| 蜜桃视频网站在线观看| 大香蕉青娱乐| 在线无码一区二区三区| 韩国成人啪啪无码高潮| 久久伊人春色| 红桃91人妻爽人妻爽| 九九视频免费观看| 五月激情丁香| AV电影免费看| 人人干超碰| 久久黄色免费视频| 91黄色视频在线观看| 欧美aaaaaa| 免费国产成人看片在线| 九九热精| a片在线免费观看| 国产精品无码乱伦| 日本乱伦网站| 亚洲青青草| 亚洲色图狠狠撸| 九九re精品视频在线观看| 国产网址| 青青草免费公开视频| 成人黄色网址| 99精品自拍| 欧美性猛交XXXX乱大交| 少妇一级| 亚洲天堂福利| 四川少妇bbbbbbbbb| www.超碰在线| 操极品美女| 2018中文字幕第一页| 欧美性猛交XXXX乱大交| 成人A片视频| 免费69视频| 琪琪av| 爱草视频| 牛牛精品一区二区AV| 91人妻日韩人妻无码| 国产成人AV在线播放| 青娱乐极品久久| 四虎成人精品永久免费AV九九| 三级片网站在线播放| 免费无码国产在线53| 日韩成人无码特集| 一级特黄妇女高潮AA片免费播放| 成人在线小视频| 欧美精品一区二区少妇免费A片| 天天舔天天射| 中文字幕11页| 成人片成人网久久蜜桃臀| 强伦人妻一区二区三区视频| 日韩欧美国产视频| wwwA片| 无码欧美精品一区二区| 超碰97免费在线| 黄色成人在线| 肉色超薄丝袜脚交一区二区| 熟女人妻在线观看| 色综合久久88色综合天天| 天天摸天天摸| 国产操逼图| 欧美日本黄色| 人人爽爽人人| 在线播放内射| 午夜无码电影| 91麻豆国产在线| 七六十路の高齢熟妇无码| 国内操逼| 免费观看成人毛片A片直播千姿| sm在线观看| 伊人大香蕉在线视频| 嫩草A片www在线观看| 欧美一级视频在线观看| 无码人妻丰满熟妇bbbb| 午夜福利日本| 欧美成人免费电影| 中文字幕日韩精品人妻| 97人妻精品一区二区三区软件| 黑人大荫蒂女同互磨| 91就要爱爱视频| 另类老妇极品BBWBBw| 操逼在线免费观看| 一品国精和二品国精的文化意义 | 江苏妇搡BBBB搡BBBB-百度| 国产午夜无码视频在线观看| 91爱爱com| 无码aⅴ| 久久久久网站| 欧美成人一级a片| 婷色五月天| 日韩AV免费在线观看| 欧美二区视频| 在线有区别亚洲| 人妻无码中文久久久久专区| 日韩无码链接|