## org.freedesktop.UDisks2.Filesystem.BTRFS org.freedesktop.UDisks2.Filesystem.BTRFS — BTRFS filesystem interface exported on block objects |

## Methods

    AddDevice       (IN  o      device,
                     IN  a{sv}  options);
    RemoveDevice    (IN  o      device,
                     IN  a{sv}  options);
    CreateSubvolume (IN  s      name,
                     IN  a{sv}  options);
    RemoveSubvolume (IN  s      name,
                     IN  a{sv}  options);
    GetSubvolumes   (IN  b      snapshots_only,
                     IN  a{sv}  options,
                     OUT a(tts) subvolumes,
                     OUT i      subvolumes_cnt);
    CreateSnapshot  (IN  s      source,
                     IN  s      dest,
                     IN  b      ro,
                     IN  a{sv}  options);
    Repair          (IN  a{sv}  options);
    Resize          (IN  t      size,
                     IN  a{sv}  options);
    SetLabel        (IN  s      label,
                     IN  a{sv}  options);

## Properties

    label        readable   s
    uuid         readable   s
    num_devices  readable   t
    used         readable   t

## Description

This interface is used for #org.freedesktop.UDisks2.Block devices that has been filtered through BTRFS plugin.

Since 2.1.3

## Method Details

### The AddDevice() method

    AddDevice (IN  o     device,
               IN  a{sv} options);

Adds the `device` to the volume.

No additional options are currently defined.

Changed in version 2.7.0.

`IN o `device``: | Object path of a device to be added to BTRFS volume.
`IN a{sv} `options``: | Additional options.

Since 2.3.0

### The RemoveDevice() method

    RemoveDevice (IN  o     device,
                  IN  a{sv} options);

Removes the `device` from the volume.

No additional options are currently defined.

Changed in version 2.7.0.

`IN o `device``: | Object path of a device to be removed from BTRFS volume.
`IN a{sv} `options``: | Additional options.

Since 2.3.0

### The CreateSubvolume() method

    CreateSubvolume (IN  s     name,
                     IN  a{sv} options);

Creates a new subvolume.

No additional options are currently defined.

`IN s `name``: | Name of a new subvolume.
`IN a{sv} `options``: | Additional options.

Since 2.1.3

### The RemoveSubvolume() method

    RemoveSubvolume (IN  s     name,
                     IN  a{sv} options);

Deletes a subvolume.

No additional options are currently defined.

`IN s `name``: | Name of the subvolume to be deleted.
`IN a{sv} `options``: | Additional options.

Since 2.1.3

### The GetSubvolumes() method

    GetSubvolumes (IN  b      snapshots_only,
                   IN  a{sv}  options,
                   OUT a(tts) subvolumes,
                   OUT i      subvolumes_cnt);

Returns a list of subvolumes.

No additional options are currently defined.

`IN b `snapshots_only``: | True if to list only snapshot subvolumes; False otherwise.
`IN a{sv} `options``: | Additional options.
`OUT a(tts) `subvolumes``: | Structure containing subvolume id, parent_id and path.
`OUT i `subvolumes_cnt``: | The number of returned elements.

Since 2.1.3

### The CreateSnapshot() method

    CreateSnapshot (IN  s     source,
                    IN  s     dest,
                    IN  b     ro,
                    IN  a{sv} options);

Creates a snapshot.

No additional options are currently defined.

`IN s `source``: | Name of the source subvolume.
`IN s `dest``: | Name for the new snapshot volume.
`IN b `ro``: | True if the snapshot should be read-only; False otherwise.
`IN a{sv} `options``: | Additional options.

Since 2.1.3

### The Repair() method

    Repair (IN  a{sv} options);

Checks and repairs btrfs volume.

No additional options are currently defined.

`IN a{sv} `options``: | Additional options.

Since 2.3.0

### The Resize() method

    Resize (IN  t     size,
            IN  a{sv} options);

Resizes the volume.

No additional options are currently defined.

`IN t `size``: | Requested new size in Bytes.
`IN a{sv} `options``: | Additional options.

Since 2.3.0

### The SetLabel() method

    SetLabel (IN  s     label,
              IN  a{sv} options);

Sets a new label for the given volume.

No additional options are currently defined.

`IN s `label``: | New label.
`IN a{sv} `options``: | Additional options.

Since 2.1.3

## Property Details

### The "label" property

    label  readable   s

Since 2.1.3

### The "uuid" property

    uuid  readable   s

Since 2.1.3

### The "num_devices" property

    num_devices  readable   t

Since 2.1.3

### The "used" property

    used  readable   t

Since 2.1.3