Linux 内核 6.6 从 block_device 如何查明它是否已挂载文件系统

问题描述 投票:0回答:1

在内核6.6之前,struct block_device有成员变量:

struct super_block *    bd_super;

可以通过检查以下内容来检查块设备是否已安装文件系统:

struct super_block *sb = bdev->bd_super;
if (!sb) {
       // block device is not mounted.
}

但是从内核6.6开始,struct block_device没有成员变量:bd_super。现在如何检查块_device是否已安装文件系统?

linux-kernel linux-device-driver linux-kernel-headers
1个回答
0
投票

经过一些测试,我发现可以使用以下代码从 block_device 访问文件系统的超级块:

struct super_block *sb = bdev->bd_holder;

我已经通过 vfst、ext2、3、4、xfs 文件系统确认了这一点。

© www.soinside.com 2019 - 2024. All rights reserved.