df

struct super_block {
    struct list_head    s_list;     /* 指向超级块链表的指针 */
    dev_t           s_dev;      /* 设备标识符 */
    unsigned char       s_dirt; /* 修改(脏)标志 */
    unsigned char       s_blocksize_bits; /* 以位为单位的块大小 */
    unsigned long       s_blocksize; /* 以字节为单位的块大小 */
    loff_t          s_maxbytes; /* 文件的最长长度 */
    struct file_system_type *s_type; /* 文件系统类型 */
    const struct super_operations   *s_op; /*超级块方法 */
    const struct dquot_operations   *dq_op; /* 磁盘限额处理方法 */
    const struct quotactl_ops   *s_qcop; /*磁盘限额管理方法 */
    const struct export_operations *s_export_op; /*网络文件系统使用的输出操作 */
    unsigned long       s_flags; /* 安装标志 */
    unsigned long       s_magic; /* 文件系统的魔数 */
    struct dentry       *s_root; /* 文件系统根目录的目录项对象 */
    struct rw_semaphore s_umount; /*卸载所用的信号量 */
    struct mutex        s_lock; /*超级块信号量 */
    int         s_count; /* 引用计数器 */
    atomic_t        s_active; /* 次级引用计数器 */
#ifdef CONFIG_SECURITY
    void                    *s_security; /* 指向超级块安全数据的指针 */
#endif
    const struct xattr_handler **s_xattr; /* 指向超级块扩展属性结构的指针 */

    struct list_head    s_inodes;   /* 所有索引节点的链表 */
    struct hlist_bl_head    s_anon;     /* 用于处理远程网络文件系统的匿名目录项的链表 */
#ifdef CONFIG_SMP
    struct list_head __percpu *s_files; /* 文件对象的链表 */
#else
    struct list_head    s_files;
#endif
    /* s_dentry_lru, s_nr_dentry_unused protected by dcache.c lru locks */
    struct list_head    s_dentry_lru;   /* unused dentry lru */
    int         s_nr_dentry_unused; /* # of dentry on lru */

    struct block_device *s_bdev; /* 指向块设备驱动程序描述符的指针 */
    struct backing_dev_info *s_bdi;
    struct mtd_info     *s_mtd;
    struct list_head    s_instances; /* 用于给定文件系统类型的超级块对象链表的指针 */
    struct quota_info   s_dquot;    /* 磁盘限额的描述符 */

    int         s_frozen;
    wait_queue_head_t   s_wait_unfrozen; /* 进程挂起的等待队列,直到文件系统被解冻 */

    char s_id[32];              /* 包含超级块的块设备名称 */
    u8 s_uuid[16];              /* UUID */

    void            *s_fs_info; /* 指向特定文件系统的超级块信息的指针 */
    fmode_t         s_mode;

    /* Granularity of c/m/atime in ns.
       Cannot be worse than a second */
    u32        s_time_gran;

    /*
     * The next field is for VFS *only*. No filesystems have any business
     * even looking at it. You had been warned.
     */
    struct mutex s_vfs_rename_mutex;    /* Kludge */

    /*
     * Filesystem subtype.  If non-empty the filesystem type field
     * in /proc/mounts will be "type.subtype"
     */
    char *s_subtype;

    /*
     * Saved mount options for lazy filesystems using
     * generic_show_options()
     */
    char __rcu *s_options;
    const struct dentry_operations *s_d_op; /* default d_op for dentries */

    /*
     * Saved pool identifier for cleancache (-1 means none)
     */
    int cleancache_poolid;
};

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭