Motr
M0
|
#include <linux/version.h>
#include <linux/cred.h>
#include <linux/uidgid.h>
#include <linux/xattr.h>
#include "lib/trace.h"
#include "lib/misc.h"
#include "lib/memory.h"
#include "lib/bob.h"
#include "fop/fop.h"
#include "rpc/rpclib.h"
#include "rpc/rpc_opcodes.h"
#include "conf/helpers.h"
#include "motr/magic.h"
#include "layout/layout.h"
#include "layout/layout_internal.h"
#include "layout/pdclust.h"
#include "m0t1fs/linux_kernel/m0t1fs.h"
Go to the source code of this file.
Data Structures | |
struct | cob_req |
struct | cob_fop |
Macros | |
#define | M0_TRACE_SUBSYSTEM M0_TRACE_SUBSYS_M0T1FS |
Enumerations | |
enum | { COB_REQ_DEADLINE = 2000000 } |
Functions | |
static void | cob_rpc_item_cb (struct m0_rpc_item *item) |
M0_INTERNAL void | m0t1fs_inode_bob_init (struct m0t1fs_inode *bob) |
M0_INTERNAL bool | m0t1fs_inode_bob_check (struct m0t1fs_inode *bob) |
static int | file_lock_acquire (struct m0_rm_incoming *rm_in, struct m0t1fs_inode *ci) |
static void | file_lock_release (struct m0_rm_incoming *rm_in) |
static int | m0t1fs_component_objects_op (struct m0t1fs_inode *ci, struct m0t1fs_mdop *mop, int(*func)(struct cob_req *, const struct m0t1fs_inode *, const struct m0t1fs_mdop *, int idx)) |
static int | m0t1fs_ios_cob_create (struct cob_req *cr, const struct m0t1fs_inode *inode, const struct m0t1fs_mdop *mop, int idx) |
static int | m0t1fs_ios_cob_delete (struct cob_req *cr, const struct m0t1fs_inode *inode, const struct m0t1fs_mdop *mop, int idx) |
static int | m0t1fs_ios_cob_setattr (struct cob_req *cr, const struct m0t1fs_inode *inode, const struct m0t1fs_mdop *mop, int idx) |
static int | m0t1fs_ios_cob_truncate (struct cob_req *cr, const struct m0t1fs_inode *inode, const struct m0t1fs_mdop *mop, int idx) |
static int | name_mem2wire (struct m0_fop_str *tgt, const struct m0_buf *name) |
static void | body_mem2wire (struct m0_fop_cob *body, const struct m0_cob_attr *attr, int valid) |
static void | body_wire2mem (struct m0_cob_attr *attr, const struct m0_fop_cob *body) |
M0_INTERNAL int | m0t1fs_fs_conf_lock (struct m0t1fs_sb *csb) |
M0_INTERNAL void | m0t1fs_fs_conf_unlock (struct m0t1fs_sb *csb) |
void | m0t1fs_fid_alloc (struct m0t1fs_sb *csb, struct m0_fid *out) |
void | m0t1fs_fid_accept (struct m0t1fs_sb *csb, const struct m0_fid *fid) |
int | m0t1fs_inode_set_layout_id (struct m0t1fs_inode *ci, struct m0t1fs_mdop *mo, int layout_id) |
int | m0t1fs_setxattr (const struct xattr_handler *handler, struct dentry *dentry, struct inode *inode, const char *name, const void *value, size_t size, int flags) int m0t1fs_setxattr(struct dentry *dentry |
M0_ENTRY ("Setting %.*s's xattr %s=%.*s", dentry->d_name.len,(char *) dentry->d_name.name, name,(int) size,(char *) value) | |
if (value==NULL) | |
else | if (m0_streq(name, "writesize")) |
m0_buf_init & | mo (void *) value, size |
m0_fop_put0_lock (rep_fop) | |
return | M0_RC (rc) |
int | m0t1fs_fid_getxattr (const struct xattr_handler *handler, struct dentry *dentry, struct inode *inode, const char *name, void *buffer, size_t size) ssize_t m0t1fs_fid_getxattr(struct dentry *dentry |
return | M0_ERR (-EOPNOTSUPP) |
int | m0t1fs_getxattr (const struct xattr_handler *handler, struct dentry *dentry, struct inode *inode, const char *name, void *buffer, size_t size) ssize_t m0t1fs_getxattr(struct dentry *dentry |
M0_ENTRY ("Getting %.*s's xattr %s", dentry->d_name.len,(char *) dentry->d_name.name, name) | |
if (rc !=0) | |
if (m0_streq(name, "lid")) | |
if (csb->csb_oostore) | |
m0_buf_init & | mo (char *) dentry->d_name.name, dentry->d_name.len |
if (rc==0) | |
ssize_t | m0t1fs_listxattr (struct dentry *dentry, char *buffer, size_t size) |
int | m0t1fs_fid_removexattr (struct dentry *dentry, const char *name) |
int | m0t1fs_removexattr (struct dentry *dentry, const char *name) |
static int | m0t1fs_fid_create (struct inode *dir, struct dentry *dentry, umode_t mode, bool excl) static int m0t1fs_fid_create(struct inode *dir |
static int | m0t1fs_fid_check (struct m0_fid *fid) |
static int | m0t1fs_create (struct inode *dir, struct dentry *dentry, umode_t mode, bool excl) static int m0t1fs_create(struct inode *dir |
M0_LOG (M0_DEBUG, "Creating \s\in pdir %lu "FID_F,(char *) dentry->d_name.name, dir->i_ino, FID_P(m0t1fs_inode_fid(M0T1FS_I(dir)))) | |
M0_LOG (M0_DEBUG, "New fid = "FID_F, FID_P(&new_fid)) | |
if (dir->i_mode &S_ISGID) | |
if (S_ISDIR(mode)) | |
M0_LOG (M0_INFO, "Creating \s\with pool version "FID_F,(char *) dentry->d_name.name, FID_P(&ci->ci_pver)) | |
m0t1fs_file_lock_init (ci, csb) | |
if (!csb->csb_oostore) | |
if (S_ISREG(mode) &&csb->csb_oostore) | |
if (insert_inode_locked4(inode, inode->i_ino, &m0t1fs_inode_test, &gfid)< 0) | |
unlock_new_inode (inode) | |
mark_inode_dirty (dir) | |
d_instantiate (dentry, inode) | |
m0t1fs_fs_conf_unlock (csb) | |
if (i_err) | |
M0_ADDB2_ADD (M0_AVI_FS_CREATE, new_fid.f_container, new_fid.f_key, mode, rc) | |
static int | m0t1fs_fid_mkdir (struct inode *dir, struct dentry *dentry, umode_t mode) static int m0t1fs_fid_mkdir(struct inode *dir |
return | m0t1fs_fid_create (dir, dentry, mode|S_IFDIR, NULL) |
static int | m0t1fs_mkdir (struct inode *dir, struct dentry *dentry, umode_t mode) static int m0t1fs_mkdir(struct inode *dir |
return | m0t1fs_create (dir, dentry, mode|S_IFDIR, NULL) |
static struct dentry * | m0t1fs_lookup (struct inode *dir, struct dentry *dentry, unsigned int flags) static struct dentry *m0t1fs_lookup(struct inode *dir |
m0_addb2_add (M0_AVI_FS_LOOKUP, M0_ADDB2_OBJ(&M0T1FS_I(dir) ->ci_fid)) | |
if (dentry->d_name.len > csb->csb_namelen) | |
M0_LOG (M0_INFO, "Name: \s\,(char *) dentry->d_name.name) | |
if (IS_ERR(inode)) | |
M0_LEAVE () | |
return dcache_splice static d_splice_alias(inode, dentry) struct dentry * | m0t1fs_fid_lookup (struct inode *dir, struct dentry *dentry, unsigned int flags) static struct dentry *m0t1fs_fid_lookup(struct inode *dir |
return | m0t1fs_lookup (dir, dentry, flags) |
return | m0t1fs_lookup (dir, dentry, nd) |
struct m0_dirent * | dirent_next (struct m0_dirent *ent) |
struct m0_dirent * | dirent_first (struct m0_fop_readdir_rep *rep) |
static int | m0t1fs_opendir (struct inode *inode, struct file *file) |
static int | m0t1fs_fid_opendir (struct inode *inode, struct file *file) |
static int | m0t1fs_releasedir (struct inode *inode, struct file *file) |
static int | m0t1fs_fid_releasedir (struct inode *inode, struct file *file) |
static int | m0t1fs_fid_readdir (struct file *f, struct dir_context *ctx) |
static int | m0t1fs_fid_readdir (struct file *f, void *buf, filldir_t filldir) |
static int | m0t1fs_readdir (struct file *f, struct dir_context *ctx) static int m0t1fs_readdir(struct file *f |
if (fd->fd_direof) return M0_RC(0) | |
while (rc==0) | |
if (++fd->fd_mds_index< csb->csb_pools_common.pc_nr_svcs[M0_CST_MDS]) | |
static int | m0t1fs_fid_link (struct dentry *old, struct inode *dir, struct dentry *new) |
static int | m0t1fs_link (struct dentry *old, struct inode *dir, struct dentry *new) |
static int | m0t1fs_fid_unlink (struct inode *dir, struct dentry *dentry) |
static int | m0t1fs_unlink (struct inode *dir, struct dentry *dentry) |
static int | m0t1fs_fid_rmdir (struct inode *dir, struct dentry *dentry) |
static int | m0t1fs_rmdir (struct inode *dir, struct dentry *dentry) |
static int | m0t1fs_inode_update_stat (struct inode *inode, struct m0_fop_cob *body, struct kstat *stat) |
M0_INTERNAL int | m0t1fs_fid_getattr (const struct path *path, struct kstat *stat, uint32_t request_mask, uint32_t query_flags) M0_INTERNAL int m0t1fs_fid_getattr(struct vfsmount *mnt |
M0_INTERNAL int | m0t1fs_size_update (struct dentry *dentry, uint64_t newsize) |
M0_INTERNAL int | m0t1fs_fid_setxattr (const struct xattr_handler *handler, struct dentry *dentry, struct inode *inode, const char *name, const void *value, size_t size, int flags) M0_INTERNAL int m0t1fs_fid_setxattr(struct dentry *dentry |
M0_INTERNAL int | m0t1fs_setattr (struct dentry *dentry, struct iattr *attr) |
static int | m0t1fs_mds_cob_fop_populate (struct m0t1fs_sb *csb, const struct m0t1fs_mdop *mo, struct m0_fop *fop) |
static int | m0t1fs_mds_cob_op (struct m0t1fs_sb *csb, const struct m0t1fs_mdop *mo, struct m0_fop_type *ftype, struct m0_fop **rep_fop) |
int | m0t1fs_mds_statfs (struct m0t1fs_sb *csb, struct m0_fop **rep_fop) |
int | m0t1fs_mds_cob_create (struct m0t1fs_sb *csb, const struct m0t1fs_mdop *mo, struct m0_fop **rep_fop) |
int | m0t1fs_mds_cob_unlink (struct m0t1fs_sb *csb, const struct m0t1fs_mdop *mo, struct m0_fop **rep_fop) |
int | m0t1fs_mds_cob_link (struct m0t1fs_sb *csb, const struct m0t1fs_mdop *mo, struct m0_fop **rep_fop) |
int | m0t1fs_mds_cob_lookup (struct m0t1fs_sb *csb, const struct m0t1fs_mdop *mo, struct m0_fop **rep_fop) |
int | m0t1fs_mds_cob_getattr (struct m0t1fs_sb *csb, const struct m0t1fs_mdop *mo, struct m0_fop **rep_fop) |
int | m0t1fs_mds_cob_setattr (struct m0t1fs_sb *csb, const struct m0t1fs_mdop *mo, struct m0_fop **rep_fop) |
int | m0t1fs_mds_cob_readdir (struct m0t1fs_sb *csb, const struct m0t1fs_mdop *mo, struct m0_fop **rep_fop) |
int | m0t1fs_mds_cob_setxattr (struct m0t1fs_sb *csb, const struct m0t1fs_mdop *mo, struct m0_fop **rep_fop) |
int | m0t1fs_mds_cob_getxattr (struct m0t1fs_sb *csb, const struct m0t1fs_mdop *mo, struct m0_fop **rep_fop) |
int | m0t1fs_mds_cob_listxattr (struct m0t1fs_sb *csb, const struct m0t1fs_mdop *mo, struct m0_fop **rep_fop) |
int | m0t1fs_mds_cob_delxattr (struct m0t1fs_sb *csb, const struct m0t1fs_mdop *mo, struct m0_fop **rep_fop) |
static int | m0t1fs_ios_cob_fop_populate (struct m0t1fs_sb *csb, const struct m0t1fs_mdop *mop, struct m0_fop *fop, const struct m0_fid *cob_fid, const struct m0_fid *gob_fid, uint32_t cob_idx) |
static void | cfop_release (struct m0_ref *ref) |
static int | m0t1fs_ios_cob_op (struct cob_req *cr, const struct m0t1fs_inode *ci, const struct m0t1fs_mdop *mop, int idx, struct m0_fop_type *ftype) |
M0_INTERNAL int | m0t1fs_cob_getattr (struct inode *inode) |
M0_INTERNAL int | m0t1fs_cob_setattr (struct inode *inode, struct m0t1fs_mdop *mo) |
Variables | |
const struct m0_uint128 | m0_rm_m0t1fs_group |
static const struct m0_rpc_item_ops | cob_item_ops |
int const char * | name = handler->name |
int const char const void * | value |
int const char const void size_t | size |
int const char const void size_t int | flags |
struct m0t1fs_sb * | csb = M0T1FS_SB(ci->ci_inode.i_sb) |
int | layout_id |
struct m0t1fs_mdop | mo |
int | rc = m0t1fs_mds_cob_setxattr(csb, &mo, &rep_fop) |
struct m0_fop * | rep_fop = NULL |
M0_THREAD_ENTER | |
else | |
out | __pad0__ |
int const char void * | buffer |
struct m0_fop_getxattr_rep * | rep = NULL |
mo mo_attr | ca_tfid = *m0t1fs_inode_fid(ci) |
mo mo_attr | ca_pver = ci->ci_pver |
static int struct dentry * | dentry = f->f_path.dentry |
static int struct dentry int | mode |
static int struct dentry int struct nameidata * | nd |
struct m0t1fs_inode * | ci = M0T1FS_I(inode) |
struct inode * | inode = NULL |
struct m0_fid | new_fid |
struct m0_fid | gfid |
struct m0_pool_version * | pv |
bool | i_err = false |
inode | i_ino = m0_fid_hash(&gfid) |
ci | ci_fid = gfid |
inode | i_mode = mode |
inode | i_uid = current_fsuid() |
else inode | i_gid = current_fsgid() |
inode | i_mtime = inode->i_atime = inode->i_ctime = current_time(inode) |
inode | i_blocks = 0 |
inode | i_fop = &m0t1fs_reg_file_operations |
inode i_mapping | a_ops = &m0t1fs_aops |
ci | ci_pver = pv->pv_id |
ci | ci_layout_id = M0_DEFAULT_LAYOUT_ID |
mo mo_attr | ca_uid = from_kuid(current_user_ns(), inode->i_uid) |
mo mo_attr | ca_gid = from_kgid(current_user_ns(), inode->i_gid) |
mo mo_attr | ca_atime = inode->i_atime.tv_sec |
mo mo_attr | ca_ctime = inode->i_ctime.tv_sec |
mo mo_attr | ca_mtime = inode->i_mtime.tv_sec |
mo mo_attr | ca_mode = inode->i_mode |
mo mo_attr | ca_blocks = inode->i_blocks |
mo mo_attr | ca_pfid = *m0t1fs_inode_fid(M0T1FS_I(dir)) |
mo mo_attr | ca_lid = ci->ci_layout_id |
mo mo_attr | ca_nlink = inode->i_nlink |
mo mo_attr | ca_valid |
out | __pad1__ |
void * | err_ptr = NULL |
bool | dcache_splice = false |
out | __pad2__ |
m0_fid_tassume & | fid |
static int void * | buf |
static int void filldir_t | filldir |
struct inode * | dir = dentry->d_inode |
struct m0_dirent * | ent |
struct m0t1fs_filedata * | fd = f->private_data |
int | type |
ino_t | ino |
int | i = ctx->pos |
int | over |
bool | dot_filled = false |
bool | dotdot_filled = false |
fd | fd_direof = 1 |
out | __pad3__ |
M0_INTERNAL int struct dentry struct kstat * | stat |
struct m0_fop_cob * | body |
const struct xattr_handler | m0t1fs_xattr_lid |
const struct xattr_handler | m0t1fs_xattr_pver |
const struct xattr_handler | m0t1fs_xattr_writesize |
static const struct xattr_handler | m0t1fs_xattr_fid_lid |
static const struct xattr_handler | m0t1fs_xattr_fid_writesize |
const struct xattr_handler * | m0t1fs_xattr_handlers [] |
const struct file_operations | m0t1fs_dir_file_operations |
const struct file_operations | m0t1fs_fid_dir_file_operations |
const struct inode_operations | m0t1fs_dir_inode_operations |
const struct inode_operations | m0t1fs_fid_dir_inode_operations |
anonymous enum |
|
static |
|
static |
|
static |
|
static |
struct m0_dirent* dirent_first | ( | struct m0_fop_readdir_rep * | rep | ) |
|
static |
|
static |
if | ( | rc ! | = 0 | ) |
TODO: Entry type is unknown and ino is pretty random, should be fixed later.
if | ( | csb-> | csb_oostore | ) |
if | ( | !csb-> | csb_oostore | ) |
if | ( | IS_ERR(inode) | ) |
if | ( | fd-> | fd_direof | ) |
M0_ADDB2_ADD | ( | M0_AVI_FS_CREATE | , |
new_fid. | f_container, | ||
new_fid. | f_key, | ||
mode | , | ||
rc | |||
) |
m0_addb2_add | ( | M0_AVI_FS_LOOKUP | , |
M0_ADDB2_OBJ(&dir -> | ci_fid | ||
) |
M0_ENTRY | ( | ) |
return M0_ERR | ( | - | EOPNOTSUPP | ) |
m0_fop_put0_lock | ( | rep_fop | ) |
M0_LEAVE | ( | ) |
M0_LOG | ( | M0_DEBUG | , |
"Creating \n pdir %lu " | FID_F, | ||
(char *) dentry->d_name. | name, | ||
dir-> | i_ino, | ||
FID_P(m0t1fs_inode_fid(M0T1FS_I(dir))) | |||
) |
M0_LOG | ( | M0_DEBUG | ) |
M0_LOG | ( | M0_INFO | , |
"Creating \ith pool version " | FID_F, | ||
(char *) dentry->d_name. | name, | ||
FID_P &-> | ci_pver | ||
) |
return M0_RC | ( | rc | ) |
M0_INTERNAL int m0t1fs_cob_getattr | ( | struct inode * | inode | ) |
M0_INTERNAL int m0t1fs_cob_setattr | ( | struct inode * | inode, |
struct m0t1fs_mdop * | mo | ||
) |
|
static |
|
static |
void m0t1fs_fid_accept | ( | struct m0t1fs_sb * | csb, |
const struct m0_fid * | fid | ||
) |
void m0t1fs_fid_alloc | ( | struct m0t1fs_sb * | csb, |
struct m0_fid * | out | ||
) |
|
static |
|
static |
M0_INTERNAL int m0t1fs_fid_getattr | ( | const struct path * | path, |
struct kstat * | stat, | ||
uint32_t | request_mask, | ||
uint32_t | query_flags | ||
) |
int m0t1fs_fid_getxattr | ( | const struct xattr_handler * | handler, |
struct dentry * | dentry, | ||
struct inode * | inode, | ||
const char * | name, | ||
void * | buffer, | ||
size_t | size | ||
) |
|
static |
|
static |
|
static |
int m0t1fs_fid_removexattr | ( | struct dentry * | dentry, |
const char * | name | ||
) |
M0_INTERNAL int m0t1fs_fid_setxattr | ( | const struct xattr_handler * | handler, |
struct dentry * | dentry, | ||
struct inode * | inode, | ||
const char * | name, | ||
const void * | value, | ||
size_t | size, | ||
int | flags | ||
) |
M0_INTERNAL int m0t1fs_fs_conf_lock | ( | struct m0t1fs_sb * | csb | ) |
M0_INTERNAL void m0t1fs_fs_conf_unlock | ( | struct m0t1fs_sb * | csb | ) |
m0t1fs_fs_conf_unlock | ( | csb | ) |
int m0t1fs_getxattr | ( | const struct xattr_handler * | handler, |
struct dentry * | dentry, | ||
struct inode * | inode, | ||
const char * | name, | ||
void * | buffer, | ||
size_t | size | ||
) |
M0_INTERNAL bool m0t1fs_inode_bob_check | ( | struct m0t1fs_inode * | bob | ) |
M0_INTERNAL void m0t1fs_inode_bob_init | ( | struct m0t1fs_inode * | bob | ) |
int m0t1fs_inode_set_layout_id | ( | struct m0t1fs_inode * | ci, |
struct m0t1fs_mdop * | mo, | ||
int | layout_id | ||
) |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
ssize_t m0t1fs_listxattr | ( | struct dentry * | dentry, |
char * | buffer, | ||
size_t | size | ||
) |
|
static |
int m0t1fs_mds_cob_create | ( | struct m0t1fs_sb * | csb, |
const struct m0t1fs_mdop * | mo, | ||
struct m0_fop ** | rep_fop | ||
) |
int m0t1fs_mds_cob_delxattr | ( | struct m0t1fs_sb * | csb, |
const struct m0t1fs_mdop * | mo, | ||
struct m0_fop ** | rep_fop | ||
) |
|
static |
int m0t1fs_mds_cob_getattr | ( | struct m0t1fs_sb * | csb, |
const struct m0t1fs_mdop * | mo, | ||
struct m0_fop ** | rep_fop | ||
) |
int m0t1fs_mds_cob_getxattr | ( | struct m0t1fs_sb * | csb, |
const struct m0t1fs_mdop * | mo, | ||
struct m0_fop ** | rep_fop | ||
) |
int m0t1fs_mds_cob_link | ( | struct m0t1fs_sb * | csb, |
const struct m0t1fs_mdop * | mo, | ||
struct m0_fop ** | rep_fop | ||
) |
int m0t1fs_mds_cob_listxattr | ( | struct m0t1fs_sb * | csb, |
const struct m0t1fs_mdop * | mo, | ||
struct m0_fop ** | rep_fop | ||
) |
int m0t1fs_mds_cob_lookup | ( | struct m0t1fs_sb * | csb, |
const struct m0t1fs_mdop * | mo, | ||
struct m0_fop ** | rep_fop | ||
) |
|
static |
Definition at line 1949 of file dir.c.
int m0t1fs_mds_cob_readdir | ( | struct m0t1fs_sb * | csb, |
const struct m0t1fs_mdop * | mo, | ||
struct m0_fop ** | rep_fop | ||
) |
int m0t1fs_mds_cob_setattr | ( | struct m0t1fs_sb * | csb, |
const struct m0t1fs_mdop * | mo, | ||
struct m0_fop ** | rep_fop | ||
) |
int m0t1fs_mds_cob_setxattr | ( | struct m0t1fs_sb * | csb, |
const struct m0t1fs_mdop * | mo, | ||
struct m0_fop ** | rep_fop | ||
) |
int m0t1fs_mds_cob_unlink | ( | struct m0t1fs_sb * | csb, |
const struct m0t1fs_mdop * | mo, | ||
struct m0_fop ** | rep_fop | ||
) |
int m0t1fs_mds_statfs | ( | struct m0t1fs_sb * | csb, |
struct m0_fop ** | rep_fop | ||
) |
|
static |
int m0t1fs_removexattr | ( | struct dentry * | dentry, |
const char * | name | ||
) |
M0_INTERNAL int m0t1fs_setattr | ( | struct dentry * | dentry, |
struct iattr * | attr | ||
) |
int m0t1fs_setxattr | ( | const struct xattr_handler * | handler, |
struct dentry * | dentry, | ||
struct inode * | inode, | ||
const char * | name, | ||
const void * | value, | ||
size_t | size, | ||
int | flags | ||
) |
M0_INTERNAL int m0t1fs_size_update | ( | struct dentry * | dentry, |
uint64_t | newsize | ||
) |
mark_inode_dirty | ( | dir | ) |
m0_buf_init& mo | ( | void * | ) |
m0_buf_init& mo | ( | char * | ) | -> d_name.name, dentry->d_name.len |
|
static |
unlock_new_inode | ( | inode | ) |
while | ( | rc | = =0 | ) |
inode i_mapping a_ops = &m0t1fs_aops |
struct m0_fop_cob* body |
mo mo_attr ca_lid = ci->ci_layout_id |
mo mo_attr ca_pfid = *m0t1fs_inode_fid(M0T1FS_I(dir)) |
mo mo_attr ca_tfid = *m0t1fs_inode_fid(ci) |
mo mo_attr ca_valid |
|
static |
else |
m0_fid_tassume& fid |
int void filldir_t filldir |
M0_INTERNAL int const char const void size_t int flags |
m0_fid_gob_make & gfid |
inode i_fop = &m0t1fs_reg_file_operations |
inode i_ino = m0_fid_hash(&gfid) |
const struct m0_uint128 m0_rm_m0t1fs_group |
const struct file_operations m0t1fs_dir_file_operations |
const struct inode_operations m0t1fs_dir_inode_operations |
const struct file_operations m0t1fs_fid_dir_file_operations |
const struct inode_operations m0t1fs_fid_dir_inode_operations |
|
static |
|
static |
const struct xattr_handler* m0t1fs_xattr_handlers[] |
const struct xattr_handler m0t1fs_xattr_lid |
const struct xattr_handler m0t1fs_xattr_pver |
const struct xattr_handler m0t1fs_xattr_writesize |
static int struct dentry int mode |
struct m0_pool_version* pv |
struct m0_fop_readdir_rep * rep = NULL |
M0_INTERNAL int const char const void size_t size |
M0_INTERNAL int struct dentry struct kstat* stat |