glusterfs  8.2
About: GlusterFS is a network/cluster filesystem. The storage server (or each in a cluster) runs glusterfsd and the clients use mount command or glusterfs client to mount the exported filesystem. Release series 8.x (latest version).
  Fossies Dox: glusterfs-8.2.tar.gz  ("unofficial" and yet experimental doxygen-generated source code documentation)  

inode.h File Reference
#include <stdint.h>
#include <sys/types.h>
#include "glusterfs/list.h"
#include "glusterfs/iatt.h"
#include "glusterfs/compat-uuid.h"
#include "glusterfs/fd.h"
Include dependency graph for inode.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  _inode_table
 
struct  _dentry
 
struct  _inode_ctx
 
struct  _inode
 

Macros

#define LOOKUP_NEEDED   1
 
#define LOOKUP_NOT_NEEDED   2
 
#define DEFAULT_INODE_MEMPOOL_ENTRIES   32 * 1024
 
#define INODE_PATH_FMT   "<gfid:%s>"
 
#define UUID0_STR   "00000000-0000-0000-0000-000000000000"
 
#define GFID_STR_PFX   "<gfid:" UUID0_STR ">"
 
#define GFID_STR_PFX_LEN   (sizeof(GFID_STR_PFX) - 1)
 
#define __inode_ctx_set(i, x, v_p)   __inode_ctx_set0(i, x, v_p)
 
#define inode_ctx_set(i, x, v_p)   inode_ctx_set0(i, x, v_p)
 
#define inode_ctx_reset(i, x, v)   inode_ctx_reset0(i, x, v)
 
#define __inode_ctx_get(i, x, v)   __inode_ctx_get0(i, x, v)
 
#define inode_ctx_get(i, x, v)   inode_ctx_get0(i, x, v)
 
#define inode_ctx_del(i, x, v)   inode_ctx_del2(i, x, v, 0)
 
#define inode_ctx_del1(i, x, v)   inode_ctx_del2(i, x, 0, v)
 

Typedefs

typedef struct _inode_table inode_table_t
 
typedef struct _inode inode_t
 
typedef struct _dentry dentry_t
 

Functions

inode_table_tinode_table_new (uint32_t lru_limit, xlator_t *xl)
 
inode_table_tinode_table_with_invalidator (uint32_t lru_limit, xlator_t *xl, int32_t(*invalidator_fn)(xlator_t *, inode_t *), xlator_t *invalidator_xl)
 
void inode_table_destroy_all (glusterfs_ctx_t *ctx)
 
void inode_table_destroy (inode_table_t *inode_table)
 
inode_tinode_new (inode_table_t *table)
 
inode_tinode_link (inode_t *inode, inode_t *parent, const char *name, struct iatt *stbuf)
 
void inode_unlink (inode_t *inode, inode_t *parent, const char *name)
 
inode_tinode_parent (inode_t *inode, uuid_t pargfid, const char *name)
 
inode_tinode_ref (inode_t *inode)
 
inode_tinode_unref (inode_t *inode)
 
int inode_lookup (inode_t *inode)
 
int inode_forget (inode_t *inode, uint64_t nlookup)
 
int inode_forget_with_unref (inode_t *inode, uint64_t nlookup)
 
int inode_ref_reduce_by_n (inode_t *inode, uint64_t nref)
 
int inode_invalidate (inode_t *inode)
 
int inode_rename (inode_table_t *table, inode_t *olddir, const char *oldname, inode_t *newdir, const char *newname, inode_t *inode, struct iatt *stbuf)
 
inode_tinode_grep (inode_table_t *table, inode_t *parent, const char *name)
 
int inode_grep_for_gfid (inode_table_t *table, inode_t *parent, const char *name, uuid_t gfid, ia_type_t *type)
 
inode_tinode_find (inode_table_t *table, uuid_t gfid)
 
int inode_path (inode_t *inode, const char *name, char **bufp)
 
int __inode_path (inode_t *inode, const char *name, char **bufp)
 
inode_tinode_from_path (inode_table_t *table, const char *path)
 
inode_tinode_resolve (inode_table_t *table, char *path)
 
int inode_ctx_set2 (inode_t *inode, xlator_t *xlator, uint64_t *value1, uint64_t *value2)
 
int __inode_ctx_set2 (inode_t *inode, xlator_t *xlator, uint64_t *value1, uint64_t *value2)
 
int inode_ctx_get2 (inode_t *inode, xlator_t *xlator, uint64_t *value1, uint64_t *value2)
 
int __inode_ctx_get2 (inode_t *inode, xlator_t *xlator, uint64_t *value1, uint64_t *value2)
 
int inode_ctx_del2 (inode_t *inode, xlator_t *xlator, uint64_t *value1, uint64_t *value2)
 
int inode_ctx_reset2 (inode_t *inode, xlator_t *xlator, uint64_t *value1, uint64_t *value2)
 
int inode_ctx_set0 (inode_t *inode, xlator_t *xlator, uint64_t *value1)
 
int __inode_ctx_set0 (inode_t *inode, xlator_t *xlator, uint64_t *value1)
 
int inode_ctx_get0 (inode_t *inode, xlator_t *xlator, uint64_t *value1)
 
int __inode_ctx_get0 (inode_t *inode, xlator_t *xlator, uint64_t *value1)
 
int inode_ctx_reset0 (inode_t *inode, xlator_t *xlator, uint64_t *value1)
 
int inode_ctx_set1 (inode_t *inode, xlator_t *xlator, uint64_t *value2)
 
int __inode_ctx_set1 (inode_t *inode, xlator_t *xlator, uint64_t *value2)
 
int inode_ctx_get1 (inode_t *inode, xlator_t *xlator, uint64_t *value2)
 
int __inode_ctx_get1 (inode_t *inode, xlator_t *xlator, uint64_t *value2)
 
int inode_ctx_reset1 (inode_t *inode, xlator_t *xlator, uint64_t *value2)
 
static int __inode_ctx_put (inode_t *inode, xlator_t *this, uint64_t v)
 
static int inode_ctx_put (inode_t *inode, xlator_t *this, uint64_t v)
 
bool __is_root_gfid (uuid_t gfid)
 
void __inode_table_set_lru_limit (inode_table_t *table, uint32_t lru_limit)
 
void inode_table_set_lru_limit (inode_table_t *table, uint32_t lru_limit)
 
void inode_ctx_merge (fd_t *fd, inode_t *inode, inode_t *linked_inode)
 
int inode_is_linked (inode_t *inode)
 
void inode_set_need_lookup (inode_t *inode, xlator_t *this)
 
bool inode_needs_lookup (inode_t *inode, xlator_t *this)
 
int inode_has_dentry (inode_t *inode)
 
size_t inode_ctx_size (inode_t *inode)
 
void inode_find_directory_name (inode_t *inode, const char **name)
 

Macro Definition Documentation

◆ __inode_ctx_get

#define __inode_ctx_get (   i,
  x,
 
)    __inode_ctx_get0(i, x, v)

Definition at line 270 of file inode.h.

◆ __inode_ctx_set

#define __inode_ctx_set (   i,
  x,
  v_p 
)    __inode_ctx_set0(i, x, v_p)

Definition at line 264 of file inode.h.

◆ DEFAULT_INODE_MEMPOOL_ENTRIES

#define DEFAULT_INODE_MEMPOOL_ENTRIES   32 * 1024

Definition at line 20 of file inode.h.

◆ GFID_STR_PFX

#define GFID_STR_PFX   "<gfid:" UUID0_STR ">"

Definition at line 119 of file inode.h.

◆ GFID_STR_PFX_LEN

#define GFID_STR_PFX_LEN   (sizeof(GFID_STR_PFX) - 1)

Definition at line 120 of file inode.h.

◆ inode_ctx_del

#define inode_ctx_del (   i,
  x,
 
)    inode_ctx_del2(i, x, v, 0)

Definition at line 274 of file inode.h.

◆ inode_ctx_del1

#define inode_ctx_del1 (   i,
  x,
 
)    inode_ctx_del2(i, x, 0, v)

Definition at line 275 of file inode.h.

◆ inode_ctx_get

#define inode_ctx_get (   i,
  x,
 
)    inode_ctx_get0(i, x, v)

Definition at line 272 of file inode.h.

◆ inode_ctx_reset

#define inode_ctx_reset (   i,
  x,
 
)    inode_ctx_reset0(i, x, v)

Definition at line 268 of file inode.h.

◆ inode_ctx_set

#define inode_ctx_set (   i,
  x,
  v_p 
)    inode_ctx_set0(i, x, v_p)

Definition at line 266 of file inode.h.

◆ INODE_PATH_FMT

#define INODE_PATH_FMT   "<gfid:%s>"

Definition at line 21 of file inode.h.

◆ LOOKUP_NEEDED

#define LOOKUP_NEEDED   1

Definition at line 17 of file inode.h.

◆ LOOKUP_NOT_NEEDED

#define LOOKUP_NOT_NEEDED   2

Definition at line 18 of file inode.h.

◆ UUID0_STR

#define UUID0_STR   "00000000-0000-0000-0000-000000000000"

Definition at line 118 of file inode.h.

Typedef Documentation

◆ dentry_t

typedef struct _dentry dentry_t

Definition at line 1 of file inode.h.

◆ inode_t

typedef struct _inode inode_t

Definition at line 1 of file inode.h.

◆ inode_table_t

typedef struct _inode_table inode_table_t

Definition at line 1 of file inode.h.

Function Documentation

◆ __inode_ctx_get0()

int __inode_ctx_get0 ( inode_t inode,
xlator_t xlator,
uint64_t *  value1 
)

Definition at line 2164 of file inode.c.

References __inode_ctx_get2().

Referenced by __dht_lock_subvol_set(), dht_get_lock_subvolume(), and inode_ctx_get0().

◆ __inode_ctx_get1()

int __inode_ctx_get1 ( inode_t inode,
xlator_t xlator,
uint64_t *  value2 
)

◆ __inode_ctx_get2()

int __inode_ctx_get2 ( inode_t inode,
xlator_t xlator,
uint64_t *  value1,
uint64_t *  value2 
)

◆ __inode_ctx_put()

static int __inode_ctx_put ( inode_t inode,
xlator_t this,
uint64_t  v 
)
inlinestatic

◆ __inode_ctx_set0()

int __inode_ctx_set0 ( inode_t inode,
xlator_t xlator,
uint64_t *  value1 
)

Definition at line 2071 of file inode.c.

References __inode_ctx_set2().

Referenced by __inode_ctx_put(), and inode_ctx_set0().

◆ __inode_ctx_set1()

int __inode_ctx_set1 ( inode_t inode,
xlator_t xlator,
uint64_t *  value2 
)

◆ __inode_ctx_set2()

int __inode_ctx_set2 ( inode_t inode,
xlator_t xlator,
uint64_t *  value1,
uint64_t *  value2 
)

◆ __inode_path()

◆ __inode_table_set_lru_limit()

void __inode_table_set_lru_limit ( inode_table_t table,
uint32_t  lru_limit 
)

Definition at line 1520 of file inode.c.

References _inode_table::lru_limit.

Referenced by inode_table_set_lru_limit().

◆ __is_root_gfid()

◆ inode_ctx_del2()

int inode_ctx_del2 ( inode_t inode,
xlator_t xlator,
uint64_t *  value1,
uint64_t *  value2 
)

◆ inode_ctx_get0()

int inode_ctx_get0 ( inode_t inode,
xlator_t xlator,
uint64_t *  value1 
)

Definition at line 2225 of file inode.c.

References __inode_ctx_get0(), _inode::lock, LOCK, and UNLOCK.

◆ inode_ctx_get1()

int inode_ctx_get1 ( inode_t inode,
xlator_t xlator,
uint64_t *  value2 
)

Definition at line 2208 of file inode.c.

References __inode_ctx_get1(), _inode::lock, LOCK, and UNLOCK.

◆ inode_ctx_get2()

int inode_ctx_get2 ( inode_t inode,
xlator_t xlator,
uint64_t *  value1,
uint64_t *  value2 
)

◆ inode_ctx_merge()

void inode_ctx_merge ( fd_t fd,
inode_t inode,
inode_t linked_inode 
)

◆ inode_ctx_put()

static int inode_ctx_put ( inode_t inode,
xlator_t this,
uint64_t  v 
)
inlinestatic

◆ inode_ctx_reset0()

int inode_ctx_reset0 ( inode_t inode,
xlator_t xlator,
uint64_t *  value1 
)

Definition at line 2350 of file inode.c.

References __inode_ctx_reset2().

Referenced by nlc_forget().

◆ inode_ctx_reset1()

int inode_ctx_reset1 ( inode_t inode,
xlator_t xlator,
uint64_t *  value2 
)

◆ inode_ctx_reset2()

int inode_ctx_reset2 ( inode_t inode,
xlator_t xlator,
uint64_t *  value1,
uint64_t *  value2 
)

Definition at line 2319 of file inode.c.

References __inode_ctx_reset2().

◆ inode_ctx_set0()

int inode_ctx_set0 ( inode_t inode,
xlator_t xlator,
uint64_t *  value1 
)

Definition at line 2117 of file inode.c.

References __inode_ctx_set0(), _inode::lock, LOCK, and UNLOCK.

Referenced by inode_ctx_put().

◆ inode_ctx_set1()

int inode_ctx_set1 ( inode_t inode,
xlator_t xlator,
uint64_t *  value2 
)

Definition at line 2101 of file inode.c.

References __inode_ctx_set1(), _inode::lock, LOCK, and UNLOCK.

Referenced by dht_inode_ctx_set_mig_info().

◆ inode_ctx_set2()

int inode_ctx_set2 ( inode_t inode,
xlator_t xlator,
uint64_t *  value1,
uint64_t *  value2 
)

Definition at line 2083 of file inode.c.

References __inode_ctx_set2(), _inode::lock, LOCK, and UNLOCK.

Referenced by afr_shd_inode_find(), meta_ctx_set(), and meta_ops_set().

◆ inode_ctx_size()

size_t inode_ctx_size ( inode_t inode)

◆ inode_find()

inode_t* inode_find ( inode_table_t table,
uuid_t  gfid 
)

Definition at line 923 of file inode.c.

References __inode_find(), __inode_ref(), GF_LOG_WARNING, gf_msg_callingfn, hash_gfid(), LG_MSG_INODE_TABLE_NOT_FOUND, _inode_table::lock, and THIS.

Referenced by __mq_add_new_contribution_node(), __shard_update_shards_inode_list(), afr_handle_upcall_event(), afr_inode_find(), br_get_bad_objects_from_child(), br_object_lookup(), br_stub_bad_objects_path(), dht_build_parent_loc(), dht_build_root_inode(), dht_readdirp_cbk(), dht_statfs(), do_quota_check_limit(), ec_loc_setup_inode(), ec_loc_setup_parent(), ec_upcall(), fuse_migrate_fd_open(), fuse_resolve_gfid(), fuse_resolve_inode_simple(), fuse_resolve_parent_simple(), ga_lookup(), ga_virtual_lookup_cbk(), glfs_h_find_handle(), glfs_refresh_inode_safe(), index_get_gfid_type(), index_lookup(), index_lookup_wrapper(), mdc_invalidate(), mdc_update_gfid_stat(), mnt3svc_volume_mount(), mq_inode_loc_fill(), nfs3_fh_resolve_inode(), nfs_entry_loc_fill(), nfs_gfid_loc_fill(), nlc_invalidate(), pl_inode_from_loc(), posix_create_link_if_gfid_exists(), posix_readdirp_fill(), posix_resolve(), pub_glfs_h_create_from_handle(), qr_invalidate(), quota_check_limit_continuation(), quota_get_limit_dir_continuation(), resolve_anonfd_simple(), resolve_entry_simple(), resolve_inode_simple(), shard_begin_rm_resolution(), shard_common_inode_write_post_lookup_handler(), shard_post_lookup_readv_handler(), shard_refresh_internal_dir(), shard_regulated_shards_deletion(), shard_resolve_internal_dir(), shard_truncate_begin(), svs_get_handle(), svs_lookup(), syncop_inode_find(), unserialize_rsp_direntp(), unserialize_rsp_direntp_v2(), and upcall_cache_invalidate().

◆ inode_find_directory_name()

void inode_find_directory_name ( inode_t inode,
const char **  name 
)

◆ inode_forget()

◆ inode_forget_with_unref()

int inode_forget_with_unref ( inode_t inode,
uint64_t  nlookup 
)

◆ inode_from_path()

inode_t* inode_from_path ( inode_table_t table,
const char *  path 
)

◆ inode_grep()

◆ inode_grep_for_gfid()

int inode_grep_for_gfid ( inode_table_t table,
inode_t parent,
const char *  name,
uuid_t  gfid,
ia_type_t type 
)

◆ inode_has_dentry()

◆ inode_invalidate()

◆ inode_is_linked()

◆ inode_link()

inode_t* inode_link ( inode_t inode,
inode_t parent,
const char *  name,
struct iatt stbuf 
)

Definition at line 1062 of file inode.c.

References __inode_link(), __inode_ref(), GF_ASSERT, GF_LOG_WARNING, gf_msg_callingfn, hash_dentry(), _inode_table::hashsize, inode_table_prune(), LG_MSG_INODE_NOT_FOUND, _inode_table::lock, _inode::table, and THIS.

Referenced by afr_selfheal_metadata_by_stbuf(), afr_selfheal_unlocked_inspect(), afr_shd_entry_changes_index_inode(), bitd_oneshot_crawl(), br_lookup_bad_obj_dir(), br_object_lookup(), br_scrubber_scrub_begin(), dht_heal_path(), dht_rename_lookup_cbk(), dht_selfheal_directory(), dht_selfheal_new_directory(), do_path_lookup(), fuse_create_cbk(), fuse_entry_cbk(), fuse_nameless_lookup(), fuse_readdirp_cbk(), fuse_resolve_entry_cbk(), fuse_resolve_gfid_cbk(), ga_virtual_lookup_cbk(), gf_defrag_fix_layout(), gf_defrag_migrate_single_file(), gf_link_inode_from_dirent(), glfs_refresh_inode_safe(), glfs_resolve_component(), glfsh_link_inode_update_loc(), mnt3_resolve_subdir_cbk(), mq_build_ancestry(), nfs3_fh_resolve_entry_lookup_cbk(), nfs3_fh_resolve_inode_lookup_cbk(), nfs3svc_create_cbk(), nfs3svc_lookup_cbk(), nfs_inode_create_cbk(), nfs_inode_link_cbk(), nfs_inode_mkdir_cbk(), nfs_inode_mknod_cbk(), nfs_inode_symlink_cbk(), pub_glfs_h_create_from_handle(), quota_build_ancestry_cbk(), resolve_gfid_cbk(), resolve_gfid_entry_cbk(), server4_icreate_cbk(), server4_post_common_3iatt(), server4_post_create(), server4_post_link(), server4_post_lookup(), server_post_create(), server_post_link(), server_post_lookup(), server_post_mkdir(), server_post_mknod(), server_post_symlink(), shard_create_marker_file_under_remove_me_cbk(), shard_delete_shards(), shard_link_block_inode(), shard_link_internal_dir_inode(), shard_lookup_marker_file_cbk(), syncop_inode_find(), and trash_dir_lookup_cbk().

◆ inode_lookup()

◆ inode_needs_lookup()

◆ inode_new()

inode_t* inode_new ( inode_table_t table)

Definition at line 686 of file inode.c.

References __inode_ref(), GF_LOG_WARNING, gf_msg_callingfn, inode_create(), LG_MSG_INODE_TABLE_NOT_FOUND, _inode::list, list_add(), _inode_table::lock, _inode_table::lru, _inode_table::lru_size, and THIS.

Referenced by __ec_heal_name(), __shard_delete_shards_of_entry(), afr_fill_ta_loc(), afr_inode_find(), afr_selfheal_entry_granular_dirent(), afr_selfheal_metadata_by_stbuf(), afr_selfheal_unlocked_lookup_on(), afr_shd_entry_changes_index_inode(), afr_shd_fill_ta_loc(), br_lookup_bad_obj_dir(), br_object_lookup(), br_prepare_loc(), create_internalop_directory(), create_or_rename_trash_directory(), dht_build_child_loc(), dht_heal_path(), dht_rename_lock_cbk(), do_path_lookup(), ec_create_name(), ec_delete_stale_name(), ec_heal_name(), fuse_create_resume(), fuse_lookup_cbk(), fuse_lookup_resume(), fuse_mkdir_resume(), fuse_mknod_resume(), fuse_nameless_lookup(), fuse_resolve_entry(), fuse_resolve_gfid(), fuse_symlink_resume(), ga_fill_tmp_loc(), ga_virtual_lookup_cbk(), gf_fill_iatt_for_dirent(), gf_svc_readdir_on_special_dir(), gf_svc_special_dir_revalidate_lookup(), glfs_refresh_inode_safe(), glfs_resolve_component(), glfsh_get_index_dir_loc(), glfsh_heal_splitbrain_file(), index_get_gfid_type(), loc_build_child(), nfs_entry_loc_fill(), nfs_gfid_loc_fill(), posix_readdirp_fill(), posix_resolve(), pub_glfs_h_create_from_handle(), qd_nameless_lookup(), server4_create_resume(), server4_icreate_resume(), server4_mkdir_resume(), server4_mknod_resume(), server4_namelink_resume(), server4_put_resume(), server4_symlink_resume(), server_create_resume(), server_inode_new(), server_mkdir_resume(), server_mknod_resume(), server_symlink_resume(), shard_common_lookup_shards(), shard_common_resume_mknod(), shard_create_marker_file_under_remove_me(), shard_init_internal_dir_loc(), shard_lookup_marker_entry(), shard_rename_src_cbk(), svs_readdirp_fill(), syncop_gfid_to_path_hard(), syncop_inode_find(), trash_dir_lookup_cbk(), trash_internalop_dir_lookup_cbk(), trash_truncate_stat_cbk(), unserialize_rsp_direntp(), and unserialize_rsp_direntp_v2().

◆ inode_parent()

◆ inode_path()

◆ inode_ref()

inode_t* inode_ref ( inode_t inode)

Definition at line 609 of file inode.c.

References __inode_ref(), _inode_table::lock, and _inode::table.

Referenced by __add_lease(), __afr_selfheal_metadata_do(), __afr_selfheal_name_expunge(), __ec_heal_entry_prepare(), __ec_heal_metadata(), __ec_heal_metadata_prepare(), __ec_heal_name(), __ec_removexattr_sinks(), __glfs_cwd_get(), __glfs_cwd_set(), __glfs_resolve_inode(), __mnt3udp_get_export_subdir_inode(), __nlc_add_pe(), __nlc_add_to_lru(), __nlc_inode_ctx_timer_start(), __recall_lease(), __shard_delete_shards_of_entry(), __shard_update_shards_inode_list(), afr_build_parent_loc(), afr_create(), afr_discover(), afr_fill_ta_loc(), afr_fix_open(), afr_getxattr_quota_size_cbk(), afr_inode_refresh(), afr_inode_refresh_done(), afr_link(), afr_lookup(), afr_lookup_and_heal_gfid(), afr_mark_new_entry_changelog(), afr_mkdir(), afr_mknod(), afr_open(), afr_read_txn(), afr_rename(), afr_rmdir(), afr_selfheal_data_open(), afr_selfheal_data_opendir(), afr_selfheal_entry_delete(), afr_selfheal_entry_granular_dirent(), afr_selfheal_entrylk(), afr_selfheal_inodelk(), afr_selfheal_post_op(), afr_selfheal_recreate_entry(), afr_selfheal_restore_time(), afr_selfheal_tie_breaker_entrylk(), afr_selfheal_tie_breaker_inodelk(), afr_selfheal_tryentrylk(), afr_selfheal_tryinodelk(), afr_selfheal_unentrylk(), afr_selfheal_uninodelk(), afr_selfheal_unlocked_discover_on(), afr_selfheal_unlocked_lookup_on(), afr_set_inode_local(), afr_set_split_brain_choice(), afr_shd_entry_changes_index_inode(), afr_shd_fill_ta_loc(), afr_shd_get_index_count(), afr_shd_index_inode(), afr_shd_index_purge(), afr_symlink(), afr_unlink(), args_create_cbk_store(), args_icreate_store_cbk(), args_link_cbk_store(), args_lookup_cbk_store(), args_mkdir_cbk_store(), args_mknod_cbk_store(), args_put_cbk_store(), args_readdirp_cbk_store(), args_symlink_cbk_store(), br_brick_connect(), br_object_open(), br_object_resign(), br_prepare_loc(), br_stub_fill_local(), changelog_local_init(), check_ancestory(), check_ancestory_2(), cluster_entrylk(), cluster_inodelk(), cluster_tiebreaker_entrylk(), cluster_tiebreaker_inodelk(), cluster_tryentrylk(), cluster_tryinodelk(), cluster_unentrylk(), cluster_uninodelk(), cs_build_loc(), dht_build_child_loc(), dht_build_parent_loc(), dht_check_and_open_fd_on_subvol_task(), dht_common_mark_mdsxattr(), dht_discover_cbk(), dht_discover_complete(), dht_do_revalidate(), dht_filter_loc_subvol_key(), dht_get_lock_subvolume(), dht_handle_parent_layout_change(), dht_heal_full_path(), dht_heal_path(), dht_inode_get_hashed_subvol(), dht_link_cbk(), dht_lock_new(), dht_lookup_cbk(), dht_lookup_dir_cbk(), dht_lookup_everywhere(), dht_migrate_file(), dht_migration_complete_check_task(), dht_mkdir(), dht_populate_inode_for_dentry(), dht_readdirp_cbk(), dht_rebalance_inprogress_task(), dht_rename_cbk(), dht_rmdir_cbk(), dht_rmdir_hashed_subvol_cbk(), do_path_lookup(), ec_adjust_versions(), ec_create_name(), ec_delete_stale_name(), ec_fix_open(), ec_heal_data(), ec_heal_inspect(), ec_heal_name(), ec_heal_names(), ec_heal_set_dirty_without_lock(), ec_loc_parent(), ec_loc_update(), ec_lookup_cbk(), ec_replace_heal(), ec_restore_time_and_adjust_versions(), ec_set_new_entry_dirty(), ec_shd_full_heal(), ec_shd_index_inode(), ec_shd_index_purge(), entry_copy(), entrylk_contention_notify_check(), fd_anonymous_with_flags(), fd_create_uint64(), fetch_pathinfo(), fuse_create_cbk(), fuse_ino_to_inode(), fuse_link_resume(), fuse_resolve_entry(), fuse_resolve_inode_simple(), fuse_resolve_parent_simple(), ga_fill_tmp_loc(), ga_lookup(), ga_valid_inode_loc_copy(), ga_virtual_lookup_cbk(), gf_fill_iatt_for_dirent(), gf_svc_lookup(), gf_svc_readdir_on_special_dir(), gf_svc_readdirp_lookup_cbk(), gf_svc_statfs(), gf_utime_set_mdata_lookup_cbk(), glfs_h_find_handle(), glfs_migrate_fd_safe(), glfs_refresh_inode_safe(), glfs_resolve_base(), glfs_resolve_component(), glfs_resolve_root(), glfs_resolve_symlink(), glfsh_heal_splitbrain_file(), glfsh_index_purge(), index_fxattrop(), index_xattrop(), inode_from_path(), inode_resolve(), inodelk_contention_notify_check(), loc_build_child(), loc_copy(), loc_copy_overload_parent(), main(), marker_loc_fill(), marker_readdirp(), marker_readdirp_cbk(), marker_rename_cbk(), marker_rename_done(), mdc_truncate(), mq_loc_fill(), new_lease_inode(), nfl_inodes_init(), nfs3_lookup_parentdir_resume(), nfs_loc_fill(), nlm4_create_share_reservation(), ns_local_new(), nufa_local_lookup_cbk(), nufa_lookup(), pl_common_entrylk(), pl_discard(), pl_inode_from_loc(), pl_inode_setlk(), pl_insert_metalk(), pl_local_init(), pl_readv(), pl_update_refkeeper(), pl_writev(), pl_zerofill(), posix_links_in_same_directory(), posix_make_ancestral_node(), posix_make_ancestryfromgfid(), priv_glfs_resolve_at(), pub_glfs_h_link(), pub_glfs_object_copy(), qr_lookup(), qr_truncate(), quota_build_ancestry(), quota_build_ancestry_cbk(), quota_check_limit(), quota_fallocate(), quota_find_common_ancestor(), quota_fsetattr(), quota_fsetxattr(), quota_fstat(), quota_fsync(), quota_ftruncate(), quota_get_limit_dir(), quota_inode_depth(), quota_link_continue(), quota_loc_fill(), quota_lookup_cbk(), quota_readdirp(), quota_readdirp_cbk(), quota_readv(), quota_statfs_continue(), quota_writev(), rename_trash_directory(), resolve_entry_simple(), resolve_inode_simple(), sdfs_build_parent_loc(), sdfs_get_new_frame_readdirp(), server4_link_resume(), server4_post_create(), server_link_resume(), server_post_create(), shard_acquire_entrylk(), shard_common_inode_write_begin(), shard_common_lookup_shards(), shard_common_remove_xattr(), shard_common_resolve_shards(), shard_common_resume_mknod(), shard_common_set_xattr(), shard_create_marker_file_under_remove_me(), shard_delete_shards_of_entry(), shard_fsync(), shard_ftruncate(), shard_init_internal_dir_loc(), shard_inode_ctx_add_to_fsync_list(), shard_lookup_marker_entry(), shard_readv(), shard_rename_src_base_file(), shard_truncate_htol(), shard_truncate_last_shard(), shard_unlink_shards_do(), svs_get_handle(), svs_lookup(), switch_local_lookup_cbk(), switch_lookup(), syncop_ftw(), syncop_ftw_throttle(), syncop_gfid_to_path_hard(), trash_dir_lookup_cbk(), trash_ftruncate(), trash_truncate_stat_cbk(), truncate_stat_cbk(), upcall_local_init(), wb_set_invalidate(), worm_release(), and xattrop_cbk().

◆ inode_ref_reduce_by_n()

int inode_ref_reduce_by_n ( inode_t inode,
uint64_t  nref 
)

◆ inode_rename()

int inode_rename ( inode_table_t table,
inode_t olddir,
const char *  oldname,
inode_t newdir,
const char *  newname,
inode_t inode,
struct iatt stbuf 
)

◆ inode_resolve()

inode_t* inode_resolve ( inode_table_t table,
char *  path 
)

◆ inode_set_need_lookup()

void inode_set_need_lookup ( inode_t inode,
xlator_t this 
)

Definition at line 2003 of file inode.c.

References inode_ctx_set, and LOOKUP_NEEDED.

◆ inode_table_destroy()

◆ inode_table_destroy_all()

void inode_table_destroy_all ( glusterfs_ctx_t ctx)

◆ inode_table_new()

inode_table_t* inode_table_new ( uint32_t  lru_limit,
xlator_t xl 
)

◆ inode_table_set_lru_limit()

void inode_table_set_lru_limit ( inode_table_t table,
uint32_t  lru_limit 
)

◆ inode_table_with_invalidator()

inode_table_t* inode_table_with_invalidator ( uint32_t  lru_limit,
xlator_t xl,
int32_t(*)(xlator_t *, inode_t *)  invalidator_fn,
xlator_t invalidator_xl 
)

◆ inode_unlink()

◆ inode_unref()

inode_t* inode_unref ( inode_t inode)

Definition at line 588 of file inode.c.

References __inode_unref(), inode_table_prune(), _inode_table::lock, and _inode::table.

Referenced by __destroy_lease_inode(), __glfs_active_subvol(), __glfs_cwd_set(), __glfs_resolve_inode(), __nlc_free_pe(), __nlc_inode_ctx_timer_delete(), __nlc_inode_ctx_timer_start(), __quota_inode_parent(), __shard_update_shards_inode_list(), _marker_inode_loc_fill(), afr_get_heal_info(), afr_get_split_brain_status(), afr_inode_refresh(), afr_local_cleanup(), afr_lookup_selfheal_wrap(), afr_lookup_sh_metadata_wrap(), afr_read_txn_wipe(), afr_readdir_transform_entries(), afr_selfheal_do(), afr_selfheal_entry_dirent(), afr_selfheal_metadata_by_stbuf(), afr_selfheal_name(), afr_selfheal_name_do(), afr_selfheal_name_unlocked_inspect(), afr_selfheal_unlocked_inspect(), afr_set_split_brain_choice(), afr_set_split_brain_choice_cbk(), afr_shd_inode_find(), afr_shd_zero_xattrop(), args_cbk_wipe(), bitd_oneshot_crawl(), br_scrubber_scrub_begin(), br_sign_object(), br_stub_cleanup_local(), changelog_fill_entry_buf(), changelog_local_cleanup(), check_ancestory(), check_ancestory_2(), check_ancestory_2_cbk(), client_destroy(), dht_get_lock_subvolume(), dht_heal_full_path(), dht_heal_path(), dht_lk_inode_unref(), dht_local_wipe(), dht_readdirp_cbk(), dht_rename_cbk(), dht_rename_lock_cbk(), dht_rename_lookup_cbk(), dht_selfheal_directory(), dht_selfheal_new_directory(), do_blocked_fops(), ec_adjust_readdirp(), ec_cbk_data_destroy(), ec_fop_data_release(), ec_get_size_version(), ec_loc_update(), ec_upcall(), entrylk_contention_notify(), fd_destroy(), fuse_create_cbk(), fuse_create_resume(), fuse_entry_cbk(), fuse_first_lookup(), fuse_link_resume(), fuse_lookup_cbk(), fuse_mkdir_resume(), fuse_mknod_resume(), fuse_nameless_lookup(), fuse_readdirp_cbk(), fuse_resolve_gfid_cbk(), fuse_resolve_inode_simple(), fuse_resolve_parent_simple(), fuse_resolve_wipe(), fuse_symlink_resume(), ga_forget(), ga_lookup(), ga_valid_inode_loc_copy(), ga_virtual_lookup_cbk(), gf_defrag_fix_layout(), gf_defrag_migrate_single_file(), gf_dirent_entry_free(), gf_link_inode_from_dirent(), gf_svc_lookup(), gf_svc_special_dir_revalidate_lookup(), gf_utime_set_mdata_lookup_cbk(), glfs_h_find_handle(), glfs_h_getxattrs_common(), glfs_migrate_fd_safe(), glfs_resolve_component(), glfs_resolve_path(), glfsh_heal_splitbrain_file(), glfsh_link_inode_update_loc(), index_lookup(), index_lookup_wrapper(), inode_from_path(), inode_resolve(), inodelk_contention_notify(), loc_wipe(), marker_trav_parent(), mdc_invalidate(), mnt3svc_volume_mount(), mq_build_ancestry(), mq_initiate_quota_task(), mq_inode_loc_fill(), nfs3_fh_resolve_entry_lookup_cbk(), nfs3_fh_resolve_inode(), nfs3_fh_resolve_inode_lookup_cbk(), nfs3_lookup_parentdir_resume(), nfs3_rootfh(), nfs3svc_create_cbk(), nfs3svc_lookup_cbk(), nfs_entry_loc_fill(), nfs_fop_local_wipe(), nfs_gfid_loc_fill(), nfs_inode_create_cbk(), nfs_inode_link_cbk(), nfs_inode_loc_fill(), nfs_inode_mkdir_cbk(), nfs_inode_mknod_cbk(), nfs_inode_symlink_cbk(), nlc_clear_all_cache(), nlc_invalidate(), nlc_lookup(), nlc_lru_prune(), nlc_remove_from_lru(), nlm4_create_share_reservation(), nlm4_free_all_shares(), nlm4_remove_share_reservation(), pl_clean_local(), pl_common_entrylk(), pl_entrylk_client_cleanup(), pl_inode_remove_cbk(), pl_inode_remove_complete(), pl_inode_remove_prepare(), pl_inode_setlk(), pl_inodelk_client_cleanup(), pl_metalk_client_cleanup(), pl_metaunlock(), pl_update_refkeeper(), posix_create_link_if_gfid_exists(), posix_get_ancestry_directory(), posix_get_ancestry_non_directory(), posix_links_in_same_directory(), posix_make_ancestryfromgfid(), posix_readdirp_fill(), priv_glfs_resolve_at(), pub_glfs_h_access(), pub_glfs_h_close(), pub_glfs_h_creat(), pub_glfs_h_creat_open(), pub_glfs_h_create_from_handle(), pub_glfs_h_getattrs(), pub_glfs_h_lease(), pub_glfs_h_link(), pub_glfs_h_lookupat(), pub_glfs_h_mkdir(), pub_glfs_h_mknod(), pub_glfs_h_open(), pub_glfs_h_opendir(), pub_glfs_h_readlink(), pub_glfs_h_removexattrs(), pub_glfs_h_rename(), pub_glfs_h_setattrs(), pub_glfs_h_setxattrs(), pub_glfs_h_stat(), pub_glfs_h_statfs(), pub_glfs_h_symlink(), pub_glfs_h_truncate(), pub_glfs_h_unlink(), qd_lookup_cbk(), qd_nameless_lookup(), qr_invalidate(), qr_local_wipe(), quota_build_ancestry_cbk(), quota_check_limit(), quota_check_limit_continuation(), quota_fallocate(), quota_find_common_ancestor(), quota_get_limit_dir(), quota_get_limit_dir_continuation(), quota_inode_depth(), quota_inode_loc_fill(), quota_link_continue(), quota_local_cleanup(), quota_lookup_cbk(), quota_writev(), rda_local_wipe(), rda_mark_inode_dirty(), recall_lease_timer_handler(), resolve_anonfd_simple(), resolve_entry_simple(), resolve_gfid_cbk(), resolve_gfid_entry_cbk(), resolve_inode_simple(), send_fuse_err(), server4_icreate_cbk(), server4_lookup_cbk(), server4_post_common_3iatt(), server4_post_create(), server4_post_link(), server4_post_lookup(), server4_post_rename(), server_first_lookup(), server_loc_wipe(), server_lookup_cbk(), server_post_create(), server_post_link(), server_post_lookup(), server_post_mkdir(), server_post_mknod(), server_post_rename(), server_post_symlink(), shard_create_marker_file_under_remove_me_cbk(), shard_delete_shards(), shard_evicted_inode_fsync_cbk(), shard_fsync_shards_cbk(), shard_inode_ctx_add_to_fsync_list(), shard_local_wipe(), shard_lookup_marker_file_cbk(), shard_regulated_shards_deletion(), svs_get_handle(), svs_lookup(), svs_readdirp_fill(), upcall_cache_invalidate(), upcall_local_wipe(), wb_mark_readdirp_end(), wb_readdirp_cbk(), wb_set_invalidate(), and xattrop_cbk().