int __mnt_is_readonly(struct vfsmount *mnt)函数用于检测形参mnt表示的文件系统是否是只读的.
其源码分析如下:
int __mnt_is_readonly(struct vfsmount *mnt)
{
#首先检测mnt_flags是否宝宝read only的flag,如果包含的话就返回1,表示这个文件系统是只读的
if (mnt->mnt_flags & MNT_READONLY)
return 1;
#检查mnt->mnt_sb 中是否包含super block的readonly flag,如果包含的话,就说明这个文件系统是只读的
if (sb_rdonly(mnt->mnt_sb))
return 1;
return 0;
}
static inline bool sb_rdonly(const struct super_block *sb) { return sb->s_flags & SB_RDONLY; }
总结一下,要判断一个问价系统是否只读,首先检查vfsmount的mnt_flag是否包含MNT_READONLY,
其次检查super block是否包含只读标志SB_RDONLY。
内核文件系统API之__mnt_is_readonly
最新推荐文章于 2024-04-09 10:15:01 发布