56 lines
2.7 KiB
Diff
56 lines
2.7 KiB
Diff
|
From fed62af06eb1584adbacd821dfe79c2df52c6aa4 Mon Sep 17 00:00:00 2001
|
||
|
From: Vojtech Trefny <vtrefny@redhat.com>
|
||
|
Date: Wed, 2 Nov 2022 12:14:28 +0100
|
||
|
Subject: [PATCH] Catch BlockDevNotImplementedError for btrfs plugin calls
|
||
|
|
||
|
This is a workaround for RHEL where the btrfs plugin is not
|
||
|
available and where we might still try to call some libblockdev
|
||
|
functions to gather information about preexisting btrfs devices.
|
||
|
---
|
||
|
blivet/devices/btrfs.py | 8 ++++----
|
||
|
1 file changed, 4 insertions(+), 4 deletions(-)
|
||
|
|
||
|
diff --git a/blivet/devices/btrfs.py b/blivet/devices/btrfs.py
|
||
|
index 0e029715..1ae6a04d 100644
|
||
|
--- a/blivet/devices/btrfs.py
|
||
|
+++ b/blivet/devices/btrfs.py
|
||
|
@@ -362,7 +362,7 @@ class BTRFSVolumeDevice(BTRFSDevice, ContainerDevice, RaidDevice):
|
||
|
try:
|
||
|
subvols = blockdev.btrfs.list_subvolumes(mountpoint,
|
||
|
snapshots_only=snapshots_only)
|
||
|
- except blockdev.BtrfsError as e:
|
||
|
+ except (blockdev.BtrfsError, blockdev.BlockDevNotImplementedError) as e:
|
||
|
log.debug("failed to list subvolumes: %s", e)
|
||
|
else:
|
||
|
self._get_default_subvolume_id()
|
||
|
@@ -400,7 +400,7 @@ class BTRFSVolumeDevice(BTRFSDevice, ContainerDevice, RaidDevice):
|
||
|
with self._do_temp_mount() as mountpoint:
|
||
|
try:
|
||
|
subvolid = blockdev.btrfs.get_default_subvolume_id(mountpoint)
|
||
|
- except blockdev.BtrfsError as e:
|
||
|
+ except (blockdev.BtrfsError, blockdev.BlockDevNotImplementedError) as e:
|
||
|
log.debug("failed to get default subvolume id: %s", e)
|
||
|
|
||
|
self._default_subvolume_id = subvolid
|
||
|
@@ -413,7 +413,7 @@ class BTRFSVolumeDevice(BTRFSDevice, ContainerDevice, RaidDevice):
|
||
|
with self._do_temp_mount() as mountpoint:
|
||
|
try:
|
||
|
blockdev.btrfs.set_default_subvolume(mountpoint, vol_id)
|
||
|
- except blockdev.BtrfsError as e:
|
||
|
+ except (blockdev.BtrfsError, blockdev.BlockDevNotImplementedError) as e:
|
||
|
log.error("failed to set new default subvolume id (%s): %s",
|
||
|
vol_id, e)
|
||
|
# The only time we set a new default subvolume is so we can remove
|
||
|
@@ -471,7 +471,7 @@ class BTRFSVolumeDevice(BTRFSDevice, ContainerDevice, RaidDevice):
|
||
|
if not self.format.vol_uuid:
|
||
|
try:
|
||
|
bd_info = blockdev.btrfs.filesystem_info(self.parents[0].path)
|
||
|
- except blockdev.BtrfsError as e:
|
||
|
+ except (blockdev.BtrfsError, blockdev.BlockDevNotImplementedError) as e:
|
||
|
log.error("failed to get filesystem info for new btrfs volume %s", e)
|
||
|
else:
|
||
|
self.format.vol_uuid = bd_info.uuid
|
||
|
--
|
||
|
2.38.1
|
||
|
|