Linux源码笔记 - mount

 

(一)在Linux的VFS上,各种文件系统对mount操作的注册


do_mount
   => do_new_mount
   ==> vfs_kern_mount
   ===> mount_fs

 

   各主流文件系统注册的回调函数举例:

   file_system_type->mount

    ====>  aio_mount
    ====>  ext2_mount
    ====>  ext3_mount
    ====>  ext4_mount
    ====>  ntfs_mount
    ====>  sysfs_mount
    ====>  cgroup_mount
    ====>  cifs_do_mount
    ====>  nfs_fs_mount
    ====>  nfs4_remote_mount
    ====>  ceph_mount
    ====>  lustre_mount

(二)NFSv3协议,对mount的实现

nfs_fs_mount
=> nfs_subversion->rpc_ops->try_mount
==> nfs_try_mount
===> nfs_try_mount_request
====> nfs_request_mount
=====> nfs_mount
======> rpc_create
======> rpc_call_sync
=======> rpc_run_task
========> rpc_execute
==========> _rpc_execute
===========> do_action

 

 

 

(三)NFSv4协议,对mount的实现

nfs4_remote_mount

 => nfs4_create_server

   ==> nfs4_init_server

     ===> nfs4_set_client

     ===> nfs_init_server_rpcclient

   ==> nfs4_server_common_setup

     ===> nfs4_init_session

     ===> nfs4_get_rootfh

     ===> nfs_probe_fsinfo

 => nfs_fs_mount_common

   ==> nfs_get_root

(四)ceph_mount

ceph_mount

   ==》 ceph_real_mount

      ===》 open_root_dentry

          ====》ceph_mdsc_create_request

          ====》ceph_mdsc_do_request

          ====》ceph_init_dentry

          ====》ceph_mdsc_put_request

 

posted @ 2021-03-28 16:40  乌鸦嘴-raven  阅读(404)  评论(0)    收藏  举报