Linux 6.6内核中如何判断块设备是否挂载文件系统
Linux 6.6+内核中判断块设备是否挂载文件系统的方法
在Linux 6.6内核版本之前,struct block_device结构体包含bd_super成员变量,当时可以通过以下方式判断块设备是否挂载了文件系统:
struct super_block *sb = bdev->bd_super; if (!sb) { // 块设备未挂载文件系统 }
从Linux 6.6内核开始,struct block_device不再包含bd_super成员,此时需要使用内核提供的bdev_get_super()函数来获取块设备对应的超级块,进而判断挂载状态:
struct super_block *sb = bdev_get_super(bdev); if (!sb) { // 块设备未挂载文件系统 }
需要注意的是,bdev_get_super()函数会返回与该块设备关联的超级块(如果存在挂载的文件系统),若返回NULL则说明块设备未挂载任何文件系统。
内容的提问来源于stack exchange,提问作者Ashish Khurange
相关产品推荐
相关产品推荐

