2020-08-14

2020-08-14  本文已影响0人  帆子_8c3a
nfs_revalidate_file_size
    nfs_attribute_timeout
    __nfs_revalidate_inode //timeout or other 

nfs_attribute_cache_expired
    nfs_attribute_timeout


nfs_revalidate_inode
    nfs_attribute_cache_expired //if not expird, just return 0
    __nfs_revalidate_inode //real revalidate

nfs_revalidate_mapping
    nfs_mapping_need_revalidate_inode //if timeout
        nfs_attribute_timeout
    __nfs_revalidate_inode //send getattr RPC
    nfs_invalidate_mapping


nfs_file_read
    nfs_file_direct_read //if O_DIRECT
    nfs_revalidate_mapping
    generic_file_aio_read


nfs_getattr
    __nfs_revalidate_inode //need_atime, real revalidate
    nfs_revalidate_inode //not need_atime





nfs_invalidate_inode
    nfs_zap_caches_locked //NFS_INO_INVALID_ATTR | NFS_INO_INVALID_DATA

nfs_zap_caches
    nfs_zap_caches_locked
        NFS_INO_INVALID_ATTR


nfs_zap_mapping
    NFS_INO_INVALID_DATA
    nfs_fscache_invalidate

nfs_direct_write_reschedule

nfs_direct_write_complete
    schedule_work
        => nfs_direct_write_schedule_work
            nfs_direct_complete
                nfs_zap_mapping

nfs_direct_write_schedule_work



nfs_file_write
    nfs_file_direct_write //if O_DIRECT
    nfs_revalidate_file_size
    generic_file_aio_write


nfs_file_direct_write
    nfs_sync_mapping
    nfs_direct_write_schedule_iovec
        nfs_direct_write_schedule_segment //for each segment
        => nfs_direct_write_completion

nfs_readpage
    nfs_readpage_from_fscache
        __nfs_readpage_from_fscache
    nfs_readpage_async
        read_pageio_init

pnfs_pageio_init_read
    nfs_pageio_init_read
        nfs_pageio_init

上一篇下一篇

猜你喜欢

热点阅读