From 8eaa46ffeae4ac002278892001af50503d71e0ae Mon Sep 17 00:00:00 2001 From: Dominik Csapak Date: Tue, 26 Apr 2022 12:13:56 +0200 Subject: [PATCH] restore-daemon: avoid auto-mounting zpools the duration of mounting zpools not only correspond to the number of disks, but also to the content (many subvols for example) which we cannot know beforehand. so avoid mounting them at the start, and mount it only when the user requests a listing/extraction with the zpool in path Signed-off-by: Dominik Csapak Signed-off-by: Thomas Lamprecht --- .../src/proxmox_restore_daemon/disk.rs | 20 +------------------ 1 file changed, 1 insertion(+), 19 deletions(-) diff --git a/proxmox-restore-daemon/src/proxmox_restore_daemon/disk.rs b/proxmox-restore-daemon/src/proxmox_restore_daemon/disk.rs index f397ecbe..9aa849ac 100644 --- a/proxmox-restore-daemon/src/proxmox_restore_daemon/disk.rs +++ b/proxmox-restore-daemon/src/proxmox_restore_daemon/disk.rs @@ -453,30 +453,12 @@ impl DiskState { cmd.args(["import", "-d", "/dev"].iter()); let result = run_command(cmd, None).unwrap(); for (pool, disks) in Self::parse_zpool_import(&result) { - let mut bucket = Bucket::ZPool(ZFSBucketData { + let bucket = Bucket::ZPool(ZFSBucketData { name: pool.clone(), size: None, mountpoint: None, }); - // anything more than 5 disks we assume to take too long to mount, so we don't - // automatically - this means that no size can be reported - if disks.len() <= 5 { - let mp = filesystems.ensure_mounted(&mut bucket); - info!( - "zpool '{}' (on: {:?}) auto-mounted at '{:?}' (size: {:?})", - &pool, - &disks, - mp, - bucket.size(0) - ); - } else { - info!( - "zpool '{}' (on: {:?}) auto-mount skipped, too many disks", - &pool, &disks - ); - } - for disk in disks { if let Some(fidx) = drive_info.get(&disk) { match disk_map.get_mut(fidx) {