Linux内核API之文件系统
-
文件系统 – Linux内核API may_umount
may_umount()函数的作用是检查装载点mnt是不是处于忙的状态,在这里,“忙”的定义为在文件装载树上有打开的文件、pwd结构体或者子vfsmount结构体。函数在判断“…… -
文件系统 – Linux内核API make_bad_inode
make_bad_inode()函数的作用是将参数inode标记为坏节点。函数首先是将该inode从inode的hash表中移除,用到的是remove_inode_hash()函数;接下来将inode结构体…… -
文件系统 – Linux内核API is_bad_inode
is_bad_inode()函数的作用是判断传入的参数inode是否被标记为坏节点,如果节点是坏节点则结构体struct inode的i_op字段的值为系统定义的变量bad_inode_ops的…… -
文件系统 – Linux内核API inode_sub_bytes
inode_sub_bytes()函数的功能是减少inode节点的字节数,减少的量由参数loff_t bytes决定。函数执行过程是首先把减少的量右移9位与inode->i_blocks相减,实…… -
文件系统 – Linux内核API inode_set_bytes
inode_set_bytes()函数的功能是设置inode节点的字节数,设置的字节数由参数loff_t bytes决定。函数执行过程是首先把要设置的量右移9位然后赋值给inode->i_…… -
文件系统 – Linux内核API inode_get_bytes
inode_get_bytes()函数的功能是得到整个inode节点的总字节数。函数工作原理是将文件的扇区(即inode->i_blocks)通过位运算左移9位(即扇区数乘以512),…… -
文件系统 – Linux内核API inode_add_bytes
inode_add_bytes()函数的功能是增加inode节点的字节数,增加的量由参数loff_t bytes决定。函数执行过程是首先把增加的量右移9位与inode->i_blocks相加,即…… -
文件系统 – Linux内核API I_BDEV
函数I_BDEV()在实现过程中调用了函数BDEV_I(),首先申请一个结构体struct bdev_inode变量,然后用参数inode初始化结构体struct bdev_inode变量的vfs_inode字…… -
文件系统 – Linux内核API have_submounts
have_submounts()函数的作用是检查在parent所指定的目录及其子目录上是否有挂载点。 have_submounts文件包含 #include <linux/dcache.h> have_submoun…… -
文件系统 – Linux内核API get_super
get_super()函数可以实现在由参数*bdev所指定的块设备上获得超级块,并返回超级块数组的指针。在调用此函数时,该相应的文件系统必须已经被加载,或者该超级…… -
文件系统 – Linux内核API get_max_files
get_max_files()函数的功能是返回在系统中可以同时打开的最大文件数目。 get_max_files文件包含 #include <linux/fs.h> get_max_files函数定义 在内核…… -
文件系统 – Linux内核API get_fs_type
get_fs_type()函数用于根据输入参数的名字*name,获取对应文件系统类型的描述符信息,文件系统类型的描述符信息保存在函数的返回结果struct file_system_type…… -
文件系统 – Linux内核API generic_fillattr
generic_fillattr()函数的功能是初始化struct kstat结构体变量(在这里,kstat是kernel state的缩写,即内核状态),分别将inode结构体中各字段的值赋给kstat…… -
文件系统 – Linux内核API fget
fget()函数的功能是通过文件描述符查找并返回file结构体。本函数是从当前进程中获得file_struct结构体,然后通过fcheck_files()函数,传入参数为file_struct…… -
文件系统 – Linux内核API dput
dput()函数的作用是释放一个dentry结构体,并且将该结构体的使用计数d_count的值作减1操作,将该结构体从队列中删除,同时,释放该结构体的资源,如果是父结…… -
文件系统 – Linux内核API d_find_alias
函数d_find_alias()通过一个拥有别名的inode结构体,来获取具有该inode结构体的目录结构体。 d_find_alias文件包含 #include <linux/dcache.h> d_find…… -
文件系统 – Linux内核API d_alloc
d_alloc()函数的功能是分配一个目录项缓存的入口目录。如果没有足够有效的内存,则返回NULL。如果分配成功分配则返回的是一个dentry结构体。 d_alloc文件包含…… -
文件系统 – Linux内核API current_umask
current_umask()函数用来返回当前文件的权限值掩码。权限其实就是一个整数,用三位八进制数表示,此外还可以使用以下宏或多个宏的组合,定义见文件linux-3.19…… -
文件系统 – Linux内核API __mnt_is_readonly
__mnt_is_readonly()函数的功能是检查一个虚拟文件系统装载点结构体(vfsmount结构体)是否是只读的。该函数是分别通过mnt->mnt_flags字段与宏MNT_READONL…… -
文件系统 – Linux内核API 文件系统
Linux内核API与文件系统相关的API有如下: Linux内核API __mnt_is_readonly Linux内核API current_umask Linux内核API d_alloc Linux内核API d_find_alias L…… -
文件系统 – Linux内核API vfs_statfs
函数vfs_statfs()根据第一个参数dentry获取整个文件系统的一些基本信息,将其保存在函数的第二个参数buf中,此基本信息包括当前文件系统的类型、文件系统的块…… -
文件系统 – Linux内核API vfs_getattr
vfs_getattr()函数的作用是得到当前虚拟文件系统的属性。首先将目录下的节点赋值给新声明的inode结构体,执行函数security_inode_getattr(),如果是得到的值…… -
文件系统 – Linux内核API vfs_fstat
函数vfs_fstat()根据第一个参数fd查找相应的文件,获取文件的属性信息,然后将属性信息保存在函数的第二个参数stat中。 vfs_fstat文件包含 #include <linu…… -
文件系统 – Linux内核API unshare_fs_struct
unshare_fs_struct()用于给当前任务描述符current的fs字段设置新的地址,实现不共享的拷贝,即用以前的fs字段的值为新分配的fs字段地址空间赋值,然后将以前…… -
文件系统 – Linux内核API put_unused_fd
put_unused_fd()函数的功能是设置未使用的文件描述符。它调用了__put_unused_fd()函数,并在其中调用了FD_CLR函数,实现对文件描述表中的位标志open_fds与fd……