Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] udiskslinuxdrive: Calculate drive size from all attached NVMe namespaces #1230

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

tbzatek
Copy link
Member

@tbzatek tbzatek commented Nov 30, 2023

In case capacity reporting is not supported by the NVMe controller, calculate the drive size from the currently attached namespaces as a workaround.

This presents a chicken-egg problem when not all block objects are present at the time the drive size calculation is done. So ping the drive object back once a namespace interface is published, and on all subsequent uevents (e.g. as a result of LBA format change). Since the pingback is queued in the main loop, the drive Size property gets updates slightly later.

Fixes #1194

TODO:

  • handle namespace detach (uevent remove) event

In case capacity reporting is not supported by the NVMe controller,
calculate the drive size from the currently attached namespaces
as a workaround.

This presents a chicken-egg problem when not all block objects are
present at the time the drive size calculation is done. So ping
the drive object back once a namespace interface is published,
and on all subsequent uevents (e.g. as a result of LBA format
change). Since the pingback is queued in the main loop, the drive
Size property gets updates slightly later.
@tbzatek tbzatek changed the title udiskslinuxdrive: Calculate drive size from all attached NVMe namespaces [WIP] udiskslinuxdrive: Calculate drive size from all attached NVMe namespaces Jun 3, 2024
@BrainBlasted
Copy link

We hit this issue upstream in GNOME with our testing system (GNOME OS). Applying this patch seems to fix the issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Cant detect disk size
3 participants