Motr  M0
storage_dev.c File Reference
#include "lib/trace.h"
#include "lib/errno.h"
#include "lib/memory.h"
#include "lib/finject.h"
#include "lib/string.h"
#include "balloc/balloc.h"
#include "conf/obj.h"
#include "conf/confc.h"
#include "conf/helpers.h"
#include "conf/obj_ops.h"
#include "stob/ad.h"
#include "stob/linux.h"
#include "stob/stob.h"
#include "ioservice/fid_convert.h"
#include "ioservice/storage_dev.h"
#include "reqh/reqh.h"
#include <unistd.h>
#include <sys/vfs.h>
#include "pool/pool.h"
Include dependency graph for storage_dev.c:

Go to the source code of this file.

Data Structures

struct  storage_devs_wait
 

Macros

#define M0_TRACE_SUBSYSTEM   M0_TRACE_SUBSYS_IOSERVICE
 

Functions

 M0_TL_DESCR_DEFINE (storage_dev, "storage_dev", M0_INTERNAL, struct m0_storage_dev, isd_linkage, isd_magic, M0_STORAGE_DEV_MAGIC, M0_STORAGE_DEV_HEAD_MAGIC)
 
 M0_TL_DEFINE (storage_dev, M0_INTERNAL, struct m0_storage_dev)
 
static bool storage_dev_state_update_cb (struct m0_clink *link)
 
static bool storage_devs_conf_expired_cb (struct m0_clink *link)
 
static bool storage_devs_conf_ready_async_cb (struct m0_clink *link)
 
static bool storage_devs_is_locked (const struct m0_storage_devs *devs)
 
M0_INTERNAL void m0_storage_devs_lock (struct m0_storage_devs *devs)
 
M0_INTERNAL void m0_storage_devs_unlock (struct m0_storage_devs *devs)
 
M0_INTERNAL int m0_storage_devs_init (struct m0_storage_devs *devs, enum m0_storage_dev_type type, struct m0_be_seg *be_seg, struct m0_stob_domain *bstore_dom, struct m0_reqh *reqh)
 
M0_INTERNAL void m0_storage_devs_fini (struct m0_storage_devs *devs)
 
M0_INTERNAL void m0_storage_devs_use_directio (struct m0_storage_devs *devs, bool directio)
 
M0_INTERNAL void m0_storage_devs_locks_disable (struct m0_storage_devs *devs)
 
M0_INTERNAL struct m0_storage_devm0_storage_devs_find_by_cid (struct m0_storage_devs *devs, uint64_t cid)
 
M0_INTERNAL struct m0_storage_devm0_storage_devs_find_by_dom (struct m0_storage_devs *devs, struct m0_stob_domain *dom)
 
M0_INTERNAL void m0_storage_dev_clink_add (struct m0_clink *link, struct m0_chan *chan)
 
M0_INTERNAL void m0_storage_dev_clink_del (struct m0_clink *link)
 
static void dev_filename_update (struct m0_storage_dev *dev, const struct m0_conf_obj *obj)
 
static int storage_dev_update_by_conf (struct m0_storage_dev *dev, struct m0_conf_sdev *sdev, struct m0_storage_devs *storage_devs)
 
static void storage_devs_conf_refresh (struct m0_storage_devs *storage_devs, struct m0_reqh *reqh)
 
static int stob_domain_create_or_init (struct m0_storage_dev *dev, struct m0_storage_devs *devs, m0_bcount_t size, bool force)
 
static void storage_dev_release (struct m0_ref *ref)
 
M0_INTERNAL void m0_storage_dev_get (struct m0_storage_dev *dev)
 
M0_INTERNAL void m0_storage_dev_put (struct m0_storage_dev *dev)
 
static int storage_dev_new (struct m0_storage_devs *devs, uint64_t cid, bool fi_no_dev, const char *path_orig, uint64_t size, struct m0_conf_sdev *conf_sdev, bool force, struct m0_storage_dev **out)
 
M0_INTERNAL int m0_storage_dev_new (struct m0_storage_devs *devs, uint64_t cid, const char *path, uint64_t size, struct m0_conf_sdev *conf_sdev, bool force, struct m0_storage_dev **dev)
 
M0_INTERNAL int m0_storage_dev_new_by_conf (struct m0_storage_devs *devs, struct m0_conf_sdev *sdev, bool force, struct m0_storage_dev **dev)
 
M0_INTERNAL void m0_storage_dev_destroy (struct m0_storage_dev *dev)
 
M0_INTERNAL void m0_storage_dev_attach (struct m0_storage_dev *dev, struct m0_storage_devs *devs)
 
M0_INTERNAL void m0_storage_dev_detach (struct m0_storage_dev *dev)
 
M0_INTERNAL void m0_storage_dev_space (struct m0_storage_dev *dev, struct m0_storage_space *space)
 
static bool storage_devs_detached_cb (struct m0_clink *clink)
 
M0_INTERNAL void m0_storage_devs_detach_all (struct m0_storage_devs *devs)
 
M0_INTERNAL int m0_storage_dev_format (struct m0_storage_dev *dev, uint64_t cid)
 
static int sdev_stob_fsync (void *psdev)
 
M0_INTERNAL int m0_storage_devs_fdatasync (struct m0_storage_devs *sdevs)
 
M0_INTERNAL int m0_storage_dev_stob_create (struct m0_storage_devs *devs, struct m0_stob_id *sid, struct m0_dtx *dtx)
 
M0_INTERNAL int m0_storage_dev_stob_destroy (struct m0_storage_devs *devs, struct m0_stob *stob, struct m0_dtx *dtx)
 
M0_INTERNAL int m0_storage_dev_stob_find (struct m0_storage_devs *devs, struct m0_stob_id *sid, struct m0_stob **stob)
 
M0_INTERNAL void m0_storage_dev_stob_put (struct m0_storage_devs *devs, struct m0_stob *stob)
 

Macro Definition Documentation

◆ M0_TRACE_SUBSYSTEM

#define M0_TRACE_SUBSYSTEM   M0_TRACE_SUBSYS_IOSERVICE

Definition at line 22 of file storage_dev.c.