libstorage-ng
Loading...
Searching...
No Matches
storage::Bcache Class Reference

A bcache device. More...

#include <Bcache.h>

Inheritance diagram for storage::Bcache:
[legend]
Collaboration diagram for storage::Bcache:
[legend]

Public Member Functions

BcacheType get_type () const
 Get the bcache type.
unsigned int get_number () const
 Get the number of the bcache.
const BlkDeviceget_backing_device () const
 Get the BlkDevice used as backing device.
const BlkDeviceget_blk_device () const ST_DEPRECATED
 Get the BlkDevice used as backing device.
bool has_bcache_cset () const
 Returns true if a caching set is attached.
const BcacheCsetget_bcache_cset () const
 Get the caching set associated with this bcache device.
void attach_bcache_cset (BcacheCset *bcache_cset)
 Associates a caching set to the bcache.
void add_bcache_cset (BcacheCset *bcache_cset) ST_DEPRECATED
 Associates a caching set to the bcache.
void detach_bcache_cset ()
 Removes association with a caching set.
void remove_bcache_cset () ST_DEPRECATED
 Removes association with a caching set.
CacheMode get_cache_mode () const
 Returns cache mode attribute.
void set_cache_mode (CacheMode mode)
 Sets cache mode attribute.
unsigned long long get_sequential_cutoff () const
 Returns size of sequential_cutoff attribute.
unsigned get_writeback_percent () const
 Returns percent of writeback dirty pages.
Impl & get_impl ()
const Impl & get_impl () const
virtual Bcacheclone () const override
 Bcache (Impl *impl)
Public Member Functions inherited from storage::Partitionable
const Topologyget_topology () const
void set_topology (const Topology &topology)
unsigned int get_range () const
 Query the range of device nodes available.
void set_range (unsigned int range)
 Set the range of device nodes available.
bool is_usable_as_partitionable () const
 Checks whether the partitionable is in general usable as a partitionable (can hold a partition table).
PtType get_default_partition_table_type () const
 Get the default partition table type for the partitionable.
std::vector< PtTypeget_possible_partition_table_types () const
 Get possible partition table types for the disk.
PartitionTablecreate_partition_table (PtType pt_type)
 Create a partition table on the partitionable.
bool has_partition_table () const
 Check whether the partitionable has a partition table.
PartitionTableget_partition_table ()
 Return the partition table of the partitionable.
virtual std::string partition_name (int number) const
 Return the name of the partition with the specified number.
const PartitionTableget_partition_table () const
 Return the partition table of the partitionable.
Impl & get_impl ()
const Impl & get_impl () const
Public Member Functions inherited from storage::BlkDevice
const std::string & get_name () const
void set_name (const std::string &name)
const Regionget_region () const
void set_region (const Region &region)
unsigned long long get_size () const
 Returns the size of the block device.
void set_size (unsigned long long size)
 Set the size of the block device.
std::string get_size_string () const
 Returns the size of the block device as a localised string.
const Topologyget_topology () const
 Get the topology.
void set_topology (const Topology &topology)
 Set the topology.
bool is_active () const
bool is_read_only () const
 Return whether the block device is read-only.
const std::string & get_sysfs_name () const
const std::string & get_sysfs_path () const
const std::vector< std::string > & get_udev_paths () const
 Return the names of the udev by-path links of the blk device.
const std::vector< std::string > & get_udev_ids () const
 Return the names of the udev by-id links of the blk device.
bool is_usable_as_blk_device () const
 Checks whether the blk device is in general usable as a blk device.
RemoveInfo detect_remove_info () const
 Check whether the device can be removed.
const std::string & get_dm_table_name () const
 Return device-mapper table name (dm-table-name for short).
void set_dm_table_name (const std::string &dm_table_name)
 Set the device-mapper table name (dm-table-name for short).
BlkFilesystemcreate_blk_filesystem (FsType fs_type)
 Creates a block filesystem on the block device.
bool has_blk_filesystem () const
 Return whether the block device has a block filesystem.
BlkFilesystemget_blk_filesystem ()
 Return the block filesystem of the block device.
const BlkFilesystemget_blk_filesystem () const
 Return the block filesystem of the block device.
BlkFilesystemcreate_filesystem (FsType fs_type) ST_DEPRECATED
 Creates a block filesystem on the block device.
bool has_filesystem () const ST_DEPRECATED
 Return whether the block device has a block filesystem.
BlkFilesystemget_filesystem () ST_DEPRECATED
 Return the block filesystem of the block device.
const BlkFilesystemget_filesystem () const ST_DEPRECATED
 Return the block filesystem of the block device.
Encryptioncreate_encryption (const std::string &dm_table_name) ST_DEPRECATED
 Creates an encryption device on the blk device.
Encryptioncreate_encryption (const std::string &dm_table_name, EncryptionType type)
 Creates an encryption device on the blk device.
void remove_encryption ()
 Removes an encryption device on the blk device.
bool has_encryption () const
 Return whether the block device has an Encryption.
Encryptionget_encryption ()
 Return the Encryption of the block device.
const Encryptionget_encryption () const
 Return the Encryption of the block device.
Bcachecreate_bcache (const std::string &name)
 Creates a Bcache on the blk device.
bool has_bcache () const
 Return whether the block device has a BCache.
Bcacheget_bcache ()
 Return the Bcache of the block device.
const Bcacheget_bcache () const
 Return the Bcache of the block device.
BcacheCsetcreate_bcache_cset ()
 Creates a BcacheCset on the blk device.
bool has_bcache_cset () const
 Return whether the block device has a BcacheCset.
BcacheCsetget_bcache_cset ()
 Return the BcacheCset of the block device.
const BcacheCsetget_bcache_cset () const
 Return the BcacheCset of the block device.
std::vector< MountByTypepossible_mount_bys () const
 Returns the possible mount-by methods to reference the block device.
Impl & get_impl ()
const Impl & get_impl () const
Public Member Functions inherited from storage::Device
sid_t get_sid () const
 Return the storage id (sid) of the device.
bool operator== (const Device &rhs) const
bool operator!= (const Device &rhs) const
Devicecopy_to_devicegraph (Devicegraph *devicegraph) const
 Copies the device to the devicegraph.
bool exists_in_devicegraph (const Devicegraph *devicegraph) const
 Checks if the device exists in the devicegraph.
bool exists_in_probed () const
 Checks if the device exists in the probed devicegraph.
bool exists_in_staging () const
 Checks if the device exists in the staging devicegraph.
bool exists_in_system () const
 Checks if the device exists in the system devicegraph.
std::string get_displayname () const
ResizeInfo detect_resize_info () const
 Detect the resize info of the device.
bool has_children () const
size_t num_children () const
bool has_parents () const
size_t num_parents () const
std::vector< Device * > get_children ()
std::vector< const Device * > get_children () const
std::vector< Device * > get_children (View view)
 Get all children of the device.
std::vector< const Device * > get_children (View view) const
 Get all children of the device.
std::vector< Device * > get_parents ()
std::vector< const Device * > get_parents () const
std::vector< Device * > get_parents (View view)
 Get all parents of the device.
std::vector< const Device * > get_parents (View view) const
 Get all parents of the device.
std::vector< Device * > get_siblings (bool itself)
std::vector< const Device * > get_siblings (bool itself) const
std::vector< Device * > get_descendants (bool itself)
std::vector< const Device * > get_descendants (bool itself) const
std::vector< Device * > get_descendants (bool itself, View view)
std::vector< const Device * > get_descendants (bool itself, View view) const
std::vector< Device * > get_ancestors (bool itself)
std::vector< const Device * > get_ancestors (bool itself) const
std::vector< Device * > get_leaves (bool itself)
std::vector< const Device * > get_leaves (bool itself) const
std::vector< Device * > get_roots (bool itself)
std::vector< const Device * > get_roots (bool itself) const
std::vector< Holder * > get_in_holders ()
std::vector< const Holder * > get_in_holders () const
std::vector< Holder * > get_out_holders ()
std::vector< const Holder * > get_out_holders () const
void remove_descendants () ST_DEPRECATED
void remove_descendants (View view)
 Remove all descendants of the device.
const std::map< std::string, std::string > & get_userdata () const
 Return the userdata of the device.
void set_userdata (const std::map< std::string, std::string > &userdata)
 Set the userdata of the device.
std::string get_name_sort_key () const
 Get a sort-key based on the device name.
Devicegraphget_devicegraph ()
 Return the devicegraph the device belongs to.
const Devicegraphget_devicegraph () const
 Return the devicegraph the device belongs to.
Impl & get_impl ()
const Impl & get_impl () const
void save (xmlNode *node) const ST_DEPRECATED

Static Public Member Functions

static Bcachecreate (Devicegraph *devicegraph, const std::string &name)
 Create a device of type Bcache.
static Bcachecreate (Devicegraph *devicegraph, const std::string &name, BcacheType type)
 Create a device of type Bcache.
static Bcacheload (Devicegraph *devicegraph, const xmlNode *node)
static std::vector< Bcache * > get_all (Devicegraph *devicegraph)
 Get all bcaches.
static std::vector< const Bcache * > get_all (const Devicegraph *devicegraph)
 Get all bcaches.
static void reassign_numbers (Devicegraph *devicegraph)
 Fix the numeric ids of bcache devices so that there are no holes in the id sequence for in-memory bcache devices.
static Bcachefind_by_name (Devicegraph *devicegraph, const std::string &name)
 Find a bcache by its name.
static const Bcachefind_by_name (const Devicegraph *devicegraph, const std::string &name)
 Find a bcache by its name.
static std::string find_free_name (const Devicegraph *devicegraph)
 Find a free name for a bcache, e.g.
static bool compare_by_number (const Bcache *lhs, const Bcache *rhs)
 Compare (less than) two bcaches by number.
Static Public Member Functions inherited from storage::Partitionable
static std::vector< Partitionable * > get_all (Devicegraph *devicegraph)
 Get all Partitionables.
static std::vector< const Partitionable * > get_all (const Devicegraph *devicegraph)
 Get all Partitionables.
static Partitionablefind_by_name (Devicegraph *devicegraph, const std::string &name)
static const Partitionablefind_by_name (const Devicegraph *devicegraph, const std::string &name)
Static Public Member Functions inherited from storage::BlkDevice
static std::vector< BlkDevice * > get_all (Devicegraph *devicegraph)
 Get all BlkDevices.
static std::vector< const BlkDevice * > get_all (const Devicegraph *devicegraph)
 Get all BlkDevices.
static BlkDevicefind_by_name (Devicegraph *devicegraph, const std::string &name)
 Find a block device by its name.
static const BlkDevicefind_by_name (const Devicegraph *devicegraph, const std::string &name)
 Find a block device by its name.
static bool exists_by_any_name (const Devicegraph *devicegraph, const std::string &name, SystemInfo &system_info)
 Check if a block device by any name including any symbolic links in /dev.
static BlkDevicefind_by_any_name (Devicegraph *devicegraph, const std::string &name) ST_DEPRECATED
 Find a block device by any name including any symbolic links in /dev.
static BlkDevicefind_by_any_name (Devicegraph *devicegraph, const std::string &name, SystemInfo &system_info)
 Find a block device by any name including any symbolic links in /dev.
static const BlkDevicefind_by_any_name (const Devicegraph *devicegraph, const std::string &name) ST_DEPRECATED
 Find a block device by any name including any symbolic links in /dev.
static const BlkDevicefind_by_any_name (const Devicegraph *devicegraph, const std::string &name, SystemInfo &system_info)
 Find a block device by any name including any symbolic links in /dev.
static bool compare_by_dm_table_name (const BlkDevice *lhs, const BlkDevice *rhs)
 Compare (less than) two BlkDevices by DM table name.
Static Public Member Functions inherited from storage::Device
static std::vector< Device * > get_all (Devicegraph *devicegraph)
 Get all Devices.
static std::vector< const Device * > get_all (const Devicegraph *devicegraph)
 Get all Devices.
static bool compare_by_sid (const Device *lhs, const Device *rhs)
 Compare (less than) two Devices by sid.
static bool compare_by_name (const Device *lhs, const Device *rhs)
 Compare (less than) two Devices by name.

Additional Inherited Members

Protected Member Functions inherited from storage::Partitionable
 Partitionable (Impl *impl)
Protected Member Functions inherited from storage::BlkDevice
 BlkDevice (Impl *impl)
Protected Member Functions inherited from storage::Device
 Device (Impl *impl)
void create (Devicegraph *devicegraph) ST_DEPRECATED
 Create a device in the devicegraph.
void load (Devicegraph *devicegraph) ST_DEPRECATED

Detailed Description

A bcache device.

Bcache technology supports two kinds of bcache devices. Bcache devices with a backing device and also bcache devices directly created over a caching set (without backing device associated to it). This second type is known as Flash-only bcache.

Member Function Documentation

◆ add_bcache_cset()

void storage::Bcache::add_bcache_cset ( BcacheCset * bcache_cset)

Associates a caching set to the bcache.

This method does not make sense for Flash-only bcache devices.

Exceptions
LogicException,Exception

◆ attach_bcache_cset()

void storage::Bcache::attach_bcache_cset ( BcacheCset * bcache_cset)

Associates a caching set to the bcache.

This method does not make sense for Flash-only bcache devices.

Exceptions
LogicException,Exception

◆ clone()

virtual Bcache * storage::Bcache::clone ( ) const
overridevirtual

Implements storage::Device.

◆ compare_by_number()

bool storage::Bcache::compare_by_number ( const Bcache * lhs,
const Bcache * rhs )
static

Compare (less than) two bcaches by number.

See also
get_number()

◆ create() [1/2]

Bcache * storage::Bcache::create ( Devicegraph * devicegraph,
const std::string & name )
static

Create a device of type Bcache.

Usually this function is not called directly. Instead BlkDevice::create_bcache() is called.

◆ create() [2/2]

Bcache * storage::Bcache::create ( Devicegraph * devicegraph,
const std::string & name,
BcacheType type )
static

Create a device of type Bcache.

Usually this function is not called directly. Instead BlkDevice::create_bcache() is called.

◆ detach_bcache_cset()

void storage::Bcache::detach_bcache_cset ( )

Removes association with a caching set.

This method does not make sense for Flash-only bcache devices.

Exceptions
LogicException,Exception

◆ find_by_name() [1/2]

const Bcache * storage::Bcache::find_by_name ( const Devicegraph * devicegraph,
const std::string & name )
static

Find a bcache by its name.

Exceptions
DeviceNotFound,DeviceHasWrongType

◆ find_by_name() [2/2]

Bcache * storage::Bcache::find_by_name ( Devicegraph * devicegraph,
const std::string & name )
static

Find a bcache by its name.

Exceptions
DeviceNotFound,DeviceHasWrongType

◆ find_free_name()

std::string storage::Bcache::find_free_name ( const Devicegraph * devicegraph)
static

Find a free name for a bcache, e.g.

"/dev/bcache2". A free name might not be available.

Exceptions
Exception

◆ get_all()

std::vector< const Bcache * > storage::Bcache::get_all ( const Devicegraph * devicegraph)
static

Get all bcaches.

◆ get_backing_device()

const BlkDevice * storage::Bcache::get_backing_device ( ) const

Get the BlkDevice used as backing device.

This method does not make sense for Flash-only bcache devices.

Exceptions
DeviceNotFound

◆ get_bcache_cset()

const BcacheCset * storage::Bcache::get_bcache_cset ( ) const

Get the caching set associated with this bcache device.

Note that a bcache device can be created without a caching set associated to it. In case of a Flash-only bcache, there is always a caching set holding it.

◆ get_blk_device()

const BlkDevice * storage::Bcache::get_blk_device ( ) const

Get the BlkDevice used as backing device.

This method does not make sense for Flash-only bcache devices.

Exceptions
DeviceNotFound

◆ get_cache_mode()

CacheMode storage::Bcache::get_cache_mode ( ) const

Returns cache mode attribute.

This method does not make sense for Flash-only bcache devices.

◆ get_sequential_cutoff()

unsigned long long storage::Bcache::get_sequential_cutoff ( ) const

Returns size of sequential_cutoff attribute.

This method does not make sense for Flash-only bcache devices.

◆ get_type()

BcacheType storage::Bcache::get_type ( ) const

Get the bcache type.

See also
BcacheType

◆ get_writeback_percent()

unsigned storage::Bcache::get_writeback_percent ( ) const

Returns percent of writeback dirty pages.

This method does not make sense for Flash-only bcache devices.

◆ has_bcache_cset()

bool storage::Bcache::has_bcache_cset ( ) const

Returns true if a caching set is attached.

Note that a Flash-only bcache is created over a caching set, so this method should always return true for Flash-only bcache devices.

◆ reassign_numbers()

void storage::Bcache::reassign_numbers ( Devicegraph * devicegraph)
static

Fix the numeric ids of bcache devices so that there are no holes in the id sequence for in-memory bcache devices.

Called automatically when a device is deleted and a hole can appear.

Following rules apply to bcaches:

  • An existing bcache keeps its number until reboot
  • A newly created device always uses the lowest available number So the devices in memory always fill holes in the numbering sequence

◆ remove_bcache_cset()

void storage::Bcache::remove_bcache_cset ( )

Removes association with a caching set.

This method does not make sense for Flash-only bcache devices.

Exceptions
LogicException,Exception

◆ set_cache_mode()

void storage::Bcache::set_cache_mode ( CacheMode mode)

Sets cache mode attribute.

This method does not make sense for Flash-only bcache devices.

Parameters
[in]modetarget cache mode

The documentation for this class was generated from the following file:
  • /home/abuild/rpmbuild/BUILD/libstorage-ng-4.5.266-build/libstorage-ng-4.5.266/storage/Devices/Bcache.h