Skip to content

Commit be65aaa

Browse files
committed
fmt & 删除loopdevice中的devid字段
1 parent 5cbe962 commit be65aaa

File tree

1 file changed

+8
-13
lines changed

1 file changed

+8
-13
lines changed

kernel/src/driver/base/block/loop_device.rs

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ pub struct LoopDevice {
4747
inner: SpinLock<LoopDeviceInner>, //加锁保护LoopDeviceInner
4848
//有主设备次设备号
4949
block_dev_meta: BlockDevMeta,
50-
dev_id: Arc<DeviceId>,
50+
//dev_id: Arc<DeviceId>,
5151
locked_kobj_state: LockedKObjectState, //对Kobject状态的锁
5252
self_ref: Weak<Self>, //对自身的弱引用
5353
fs: RwLock<Weak<DevFS>>, //文件系统弱引用
@@ -59,7 +59,7 @@ pub struct LoopDeviceInner {
5959
pub file_inode: Option<Arc<dyn IndexNode>>,
6060
// 文件大小
6161
pub file_size: usize,
62-
// 设备名称
62+
// 设备名称 Major和Minor
6363
pub device_number: DeviceNumber,
6464
// 数据偏移量
6565
pub offset: usize,
@@ -73,26 +73,25 @@ pub struct LoopDeviceInner {
7373
pub visible: bool,
7474
// 使用弱引用避免循环引用
7575
pub self_ref: Weak<LoopDevice>,
76+
// KObject的公共数据
7677
pub kobject_common: KObjectCommonData,
78+
// 设备的公共数据
7779
pub device_common: DeviceCommonData,
7880
}
7981
impl Debug for LoopDevice {
8082
fn fmt(&self, f: &mut Formatter<'_>) -> core::fmt::Result {
8183
f.debug_struct("LoopDevice")
8284
.field("devname", &self.block_dev_meta.devname)
83-
.field("dev_id", &self.dev_id.id())
8485
.finish()
8586
}
8687
}
8788
impl LoopDevice {
8889
fn inner(&self) -> SpinLockGuard<LoopDeviceInner> {
90+
// 获取 LoopDeviceInner 的自旋锁
8991
self.inner.lock()
9092
}
91-
pub fn new_empty_loop_device(
92-
devname: DevName,
93-
dev_id: Arc<DeviceId>,
94-
minor: u32,
95-
) -> Option<Arc<Self>> {
93+
//注册一个新的空loop设备占位
94+
pub fn new_empty_loop_device(devname: DevName, minor: u32) -> Option<Arc<Self>> {
9695
// 创建一个空的 LoopDevice
9796
let dev = Arc::new_cyclic(|self_ref| Self {
9897
inner: SpinLock::new(LoopDeviceInner {
@@ -110,7 +109,6 @@ impl LoopDevice {
110109
}),
111110
//只用重复8次,就会有从0-7八个次设备号
112111
block_dev_meta: BlockDevMeta::new(devname, Major::new(7)), // Loop 设备主设备号为 7
113-
dev_id,
114112
locked_kobj_state: LockedKObjectState::default(),
115113
self_ref: self_ref.clone(),
116114
fs: RwLock::new(Weak::default()),
@@ -453,17 +451,14 @@ impl BlockDevice for LoopDevice {
453451
Vec::new()
454452
}
455453
}
456-
//注册8个loop设备
457454
use crate::init::initcall::INITCALL_DEVICE;
458455
#[unified_init(INITCALL_DEVICE)]
459456
pub fn register_loop_devices() -> Result<(), SystemError> {
460457
for minor in 0..8 {
461458
let devname = DevName::new(format!("loop{}", minor), minor);
462459
let dev_id =
463460
DeviceId::new(None, Some(devname.name().to_string())).ok_or(SystemError::EINVAL)?;
464-
if let Some(loop_dev) =
465-
LoopDevice::new_empty_loop_device(devname.clone(), dev_id, minor as u32)
466-
{
461+
if let Some(loop_dev) = LoopDevice::new_empty_loop_device(devname.clone(), minor as u32) {
467462
log::info!(
468463
"Registering loop device: {}",
469464
loop_dev.block_dev_meta.devname

0 commit comments

Comments
 (0)