---------------------------------------------------------------------
超级快操作的说明:
alloc_inode:这个方法由alloc_inode()函数调用来为struct inode分配内存并初始化它。如果这个函数没有定义,则会简单的从inode slab缓存中分配一个struct inode。通常alloc_inode被用来分配一个更大的但内嵌有struct inode的结构体,即特定文件系统的索引节点,会包含文件指针等信息。
destroy_inode:这个方法由destroy_inode()函数调用,以释放分配的struct inode。只有当->alloc_inode有定义的时候才需要它,它只是简单的撤销->alloc_inode所做的一切。
dirty_inode:这个方法被VFS调用,以标记一个inode为dirty,即标记文件的管理元数据被修改过了,在适当的时候要将inode写回磁盘。
write_inode:当VFS需要将一个inode写回磁盘的时候调用这个方法。第二个参数用以说明写回是否为同步的,并不是所有的文件系统都会检查这个标志。
drop_inode:在即将撤销索引节点时调用,即,当最后一个用户释放该索引节点时。实现该方法的文件系统通常使用generic_delete_inode函数。该函数从VFS数据结构中移走对索引节点的每一个引用,如果索引节点不再出现在任何目录中,则调用超级快方法delete_inode将它从文件系统中删除。调用时要持有inode_lock自旋锁。
delete_inode:当VFS想要删除(delete)一个inode时调用,删除内存中的VFS索引节点和磁盘上的文件数据及元数据。
put_super:当VFS想要释放superblock时调用(比如unmount)。在持有superblock锁时调用。
write_super:当VFS要向磁盘写回superblock时调用。
sync_fs:当VFS写完所有的与superblock相关的“脏”的数据之后调用。第二个参数用以说明这个方法是否需要等待直到写回操作完成。(由日志文件系统使用)。
freeze_fs:当VFS锁定一个文件系统并强制它进入一致性状态时调用。这个方法现在由Logical Volume Manager (LVM)使用。
unfreeze_fs:当VFS解除锁定一个文件系统并再次使它可写是调用。
statfs:当VFS需要获得文件系统统计量时调用。
remount_fs:当文件系统需要被重新挂载时调用。持有内核锁时调用。
clear_inode:当VFS清除(clear)inode时调用。可选。
umount_begin:当VFS卸载一个文件系统时调用。

show_options:被VFS调用来为/proc/<pid>/mounts显示挂载选项 。(参考"挂载选项"部分)
quota_read:限额系统使用该方法从文件中读取数据,该文件详细说明了所在文件系统的限制。
quota_write:限额系统使用该方法将数据写入文件中,该文件详细说明了所在文件系统的限制。
这些方法对所有的文件系统类型均是可用的。但是,对于特定的文件系统而言,则只使用其中的一个子集。未实现的方法对应的字段置为NULL。
2.3索引节点对象
文件系统处理文件所需要的信息都放在一个名为索引节点的数据结构中。具体文件系统的索引节点则根据文件系统类型的不同不同,inode节点有在磁盘上存在的静态节点,为UNIX-like系统开发的文件系统大多使用的是静态inode节点,比如ext2,ext3。还有仅仅存在于内存中的动态节点的文件系统,比如为windows系统开发的文件系统,FAT32,MSDOS,NTFS等。linux下文件系统的实现根据相关的文件系统协议,利用磁盘上存储的文件管理元数据来实现inode节点对象。内核中使用的众多的伪文件系统自然也是用的动态inode节点,因为整个文件系统就仅仅存在于内存而已。单循环链表内存中的索引节点对象由一个inode结构体来表示,其定义如下
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-76619-2.html
苹果5代的更新9系统就别在这BB
中国一方面派军舰
77个粉丝