struct super_block {
unsigned short s_ninodes; //i 节点数
unsigned short s_nzones; //逻辑块数
unsigned short s_imap_blocks; //i节点位图占用的块数
unsigned short s_zmap_blocks; //逻辑块位图占用的块数
unsigned short s_firstdatazone; //第一个数据块号
unsigned short s_log_zone_size; //Log2(磁盘块数/逻辑块)
unsigned long s_max_size; //最大文件长度
unsigned short s_magic; //Magic number
/* These are only in memory */
struct buffer_head * s_imap[8]; //i节点位图
struct buffer_head * s_zmap[8]; //逻辑块位图
unsigned short s_dev; //设备号
struct m_inode * s_isup; //根目录i节点
struct m_inode * s_imount; //被文件系统Mount到的i节点
unsigned long s_time; //修改时间
struct task_struct * s_wait; //Wait此超级块的进程
unsigned char s_lock; //Lock标志
unsigned char s_rd_only; //只读标志
unsigned char s_dirt; //Dirty标志
};
相关函数:
extern inline struct super_block * get_super(int dev);
返回dev号对应的super_block
void mount_root(void);
将superblock信息读到内存中;
将ROOT_DEV i节点信息读到内存中