文件系统内核函数

int __mnt_is_readonly(struct vfsmount *mnt)
功能:挂载设备是不是只读的
mnt:挂载结构体指针
返回值: 1是只读的 0不是只读的
头文件:#include <linux/mount.h>
内核实现:(2.6.32)
int __mnt_is_readonly(struct vfsmount *mnt)
{
    if (mnt->mnt_flags & MNT_READONLY)
        return 1;
    if (mnt->mnt_sb->s_flags & MS_RDONLY)
        return 1;
    return 0;
}

int mnt_want_write(struct vfsmount *mnt)
功能:检测挂载点mnt是否有写权限
mnt:挂载结构体指针
返回值:可写返回值为0
头文件:#include <linux/mount.h>

int may_umount(struct vfsmount *mnt)
功能:检测检查挂载点是否在忙中
mnt:挂载结构体指针
返回值:忙中返回0,否则返回1
头文件:#include <linux/fs.h>

int current_umask(void)
功能:返回当前文件的权限掩码
返回值:掩码值(umask)
头文件:#include <linux/fs.h>
内核实现:
int current_umask(void)
{
    return current->fs->umask;
}

struct dentry * d_find_alias(struct inode *inode)
功能:通过inode获得dentry结构体,一个inode可以对应多个dentry结构体(硬链接的存在)
inode:inide结构体指针
返回值:通过inode的找到的dentry结构位置
头文件:#include <linux/dcache.h>

int is_bad_inode(struct inode *inode)
功能:判断inode节点是否被标记为坏节点
inode:inode结构指针
返回值: 0不是坏节点
头文件:#include <linux/fs.h>

void make_bad_inode(struct inode *inode)
功能:将inode标记为坏节点
inode:inode结构指针
头文件:#include <linux/fs.h>

loff_t inode_get_bytes(struct inode *inode)
功能:获得inode的字节数
inode:inode结构指针
返回值:inode字节数
#include <linux/fs.h>

void inode_set_bytes(struct inode *inode, loff_t bytes)
功能:设置inode总字节数
inode:inode结构指针
bytes:设置的字节数
#include <linux/fs.h>

void inode_sub_bytes(struct inode *inode, loff_t bytes)
功能:减少inode总字节数
inode:inode结构指针
bytes:减少的字节数
#include <linux/fs.h>

void inode_add_bytes(struct inode *inode, loff_t bytes)
功能:增加inode节点的字节数
inode:inode结构指针
bytes:增加的字节数
#include <linux/fs.h>

扫描二维码关注公众号,回复: 2520267 查看本文章

struct file_system_type *get_fs_type(const char *name)
功能:根据名字获得文件系统类型描述符
name:文件系统名如ext2
返回值:文件系统描述符指针
头文件:#include <linux/fs.h>

int get_max_files(void)
功能:获得当前系统能同时打开的最大文件数
返回值:打开的最大文件数
头文件:#include <linux/fs.h>

struct file *fget(unsigned int fd)
功能:通过文件描述符获得file结构体,此函数会增加file结构体引用计数
fd:文件描述符
返回值:file结构指针
头文件:#include <linux/file.h>

int vfs_fstat(unsigned int fd, struct kstat *stat)
功能:根据fd获得文件属性信息
fd:文件描述符
stat:内核中保存属性的结构体指针
返回值: 0成功
头文件:#include <linux/fs.h>

int vfs_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat)
功能:获得当前虚拟文件系统的属性
头文件:#include <linux/fs.h>

int vfs_statfs(struct dentry *dentry, struct kstatfs *buf)
功能:根据dentry获得整个文件系统的基本信息
头文件:#include <linux/fs.h>

猜你喜欢

转载自blog.csdn.net/yldfree/article/details/81350434