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: btrfs multidisk volume support #838

Draft
wants to merge 11 commits into
base: master
Choose a base branch
from

Commits on Jan 6, 2022

  1. tests: Re-enable btrfs device number checks

    This should be working properly now with uevent synthetic tagging in use.
    tbzatek committed Jan 6, 2022
    Configuration menu
    Copy the full SHA
    3800198 View commit details
    Browse the repository at this point in the history
  2. udisksmountmonitor: Store filesystem UUID for the mount

    Queried in the udev database.
    tbzatek committed Jan 6, 2022
    Configuration menu
    Copy the full SHA
    ff998c5 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    d3ee922 View commit details
    Browse the repository at this point in the history
  4. udiskslinuxfilesystem: Add udisks_linux_filesystem_is_volume_based()

    This should be a common function to check whether the filesystem
    is a traditional one, device number based, or whether it is a filesystem
    of a different concept, based e.g. on 'volumes' such as btrfs, and
    to indicate that any filesystem matching should be done some different
    way, e.g. by filesystem UUID.
    tbzatek committed Jan 6, 2022
    Configuration menu
    Copy the full SHA
    6fe604e View commit details
    Browse the repository at this point in the history
  5. udiskslinuxfilesystem: Match mountpoints by ID_FS_UUID for volume-bas…

    …ed filesystems
    
    For filesystems with concept of 'volumes' the device number of an active
    mount often doesn't match the real backing block device. A different
    approach must be taken to match the mount with a block device. The
    generic ID_FS_UUID udev attribute looks like a good candidate and
    it seems to be widely used nowadays. For the moment this approach is
    only used for btrfs devices.
    
    The downside of such approach is grouping of all devices carrying
    the particular attribute value under one volume, no matter whether
    they're actually attached to an active mount or if it's just a copy
    (duplicate UUIDs caused by full byte copy of a device).
    tbzatek committed Jan 6, 2022
    Configuration menu
    Copy the full SHA
    1d43218 View commit details
    Browse the repository at this point in the history
  6. udisksstate: Filesystem UUID support for mountpoint cleanup

    This extends the on-disk mount state file structure with filesystem UUID
    if available or requested. This is an initial support that might be
    further extended to consider other block devices in the group
    (filesystem volume or an active mountpoint). For now the cleanup takes
    a more conservative approach in such case.
    tbzatek committed Jan 6, 2022
    Configuration menu
    Copy the full SHA
    62a78d5 View commit details
    Browse the repository at this point in the history
  7. udiskslinuxfilesystem: Add udisks_linux_filesystem_find_siblings()

    This returns a list of UDisksObjects that are part of the multidisk volume
    the current UDisksFilesystem interface points to.
    tbzatek committed Jan 6, 2022
    Configuration menu
    Copy the full SHA
    90f41c3 View commit details
    Browse the repository at this point in the history
  8. udiskslinuxfilesystem: Trigger uevent on sibling devices in case of a…

    … multidisk volume
    
    Wired for the Mount() and Unmount() methods so far this will trigger additional
    uevents to the rest of the block devices that form the particular "volume".
    tbzatek committed Jan 6, 2022
    Configuration menu
    Copy the full SHA
    95d8ea2 View commit details
    Browse the repository at this point in the history
  9. btrfs: Trigger uevent on sibling devices

    This will ensure the properties on all block objects that form
    a multi-disk btrfs volume are properly updated.
    tbzatek committed Jan 6, 2022
    Configuration menu
    Copy the full SHA
    8d04e96 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    dfcfc2b View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    29815d0 View commit details
    Browse the repository at this point in the history