Lines Matching defs:inode

96  * parse individual inode info
286 * target inode.
378 /* inode */
379 err = parse_reply_info_in(p, end, &rde->inode, features);
439 pr_warn_ratelimited("ceph: ignoring reserved inode range delegation (start=0x%llx len=0x%llx)\n",
448 dout("added delegated inode 0x%llx\n",
451 pr_warn("ceph: MDS delegated inode 0x%llx more than once.\n",
912 struct inode *dir)
1000 * non-snapshot inode. We do this using the rcu_read_lock (which must be held
1005 static struct inode *get_nonsnap_parent(struct dentry *dentry)
1007 struct inode *inode = NULL;
1010 inode = d_inode_rcu(dentry);
1011 if (!inode || ceph_snap(inode) == CEPH_NOSNAP)
1015 if (inode)
1016 inode = igrab(inode);
1017 return inode;
1032 struct inode *inode;
1058 inode = NULL;
1061 inode = req->r_inode;
1062 ihold(inode);
1066 inode = get_nonsnap_parent(req->r_dentry);
1068 dout("%s using snapdir's parent %p\n", __func__, inode);
1073 struct inode *dir;
1081 inode = d_inode(req->r_dentry);
1082 if (inode)
1083 ihold(inode);
1086 * based on parent dir inode */
1087 inode = get_nonsnap_parent(parent);
1088 dout("%s using nonsnap parent %p\n", __func__, inode);
1091 inode = d_inode(req->r_dentry);
1092 if (!inode || mode == USE_AUTH_MDS) {
1094 inode = igrab(dir);
1098 ihold(inode);
1104 dout("%s %p is_hash=%d (0x%x) mode %d\n", __func__, inode, (int)is_hash,
1106 if (!inode)
1108 ci = ceph_inode(inode);
1110 if (is_hash && S_ISDIR(inode->i_mode)) {
1124 __func__, inode, ceph_vinop(inode),
1139 __func__, inode, ceph_vinop(inode),
1160 ceph_async_iput(inode);
1165 inode, ceph_vinop(inode), mds,
1171 ceph_async_iput(inode);
1548 int (*cb)(struct inode *, struct ceph_cap *,
1553 struct inode *inode, *last_inode = NULL;
1562 inode = igrab(&cap->ci->vfs_inode);
1563 if (!inode) {
1581 ret = cb(inode, cap, arg);
1582 last_inode = inode;
1614 static int remove_capsnaps(struct ceph_mds_client *mdsc, struct inode *inode)
1616 struct ceph_inode_info *ci = ceph_inode(inode);
1622 dout("removing capsnaps, ci is %p, inode is %p\n", ci, inode);
1627 __ceph_remove_capsnap(inode, capsnap, NULL, NULL);
1637 static int remove_session_caps_cb(struct inode *inode, struct ceph_cap *cap,
1642 struct ceph_inode_info *ci = ceph_inode(inode);
1648 dout("removing cap %p, ci is %p, inode is %p\n",
1656 if (inode->i_data.nrpages > 0)
1659 mapping_set_error(&inode->i_data, -EIO);
1677 inode, ceph_ino(inode));
1686 inode, ceph_ino(inode));
1695 mapping_set_error(inode->i_mapping, -EIO);
1710 inode, ceph_ino(inode));
1719 capsnap_release = remove_capsnaps(mdsc, inode);
1733 ceph_queue_invalidate(inode);
1735 iput(inode);
1737 iput(inode);
1757 struct inode *inode;
1764 * but it is not exported, so use lookup inode function
1776 inode = ceph_find_inode(sb, vino);
1778 ceph_async_iput(inode);
1805 static int wake_up_session_cb(struct inode *inode, struct ceph_cap *cap,
1808 struct ceph_inode_info *ci = ceph_inode(inode);
1977 * Because we can't cache an inode without one or more caps, we do
1979 * point the inode will hopefully get dropped to.
1984 static int trim_caps_cb(struct inode *inode, struct ceph_cap *cap, void *arg)
1987 struct ceph_inode_info *ci = ceph_inode(inode);
2000 inode, cap, ceph_cap_string(mine), ceph_cap_string(oissued),
2014 /* The inode has cached pages, but it's no longer used.
2016 if (S_ISREG(inode->i_mode) &&
2033 dentry = d_find_any_alias(inode);
2037 d_prune_aliases(inode);
2038 count = atomic_read(&inode->i_count);
2042 inode, cap, count);
2099 * flush all dirty inode data to disk.
2291 struct inode *dir)
2385 * inode.
2413 struct inode *inode;
2416 inode = d_inode(temp);
2417 if (inode && ceph_snap(inode) == CEPH_SNAPDIR) {
2420 } else if (stop_on_nosnap && inode && dentry != temp &&
2421 ceph_snap(inode) == CEPH_NOSNAP) {
2469 static int build_dentry_path(struct dentry *dentry, struct inode *dir,
2494 static int build_inode_path(struct inode *inode,
2501 if (ceph_snap(inode) == CEPH_NOSNAP) {
2502 *pino = ceph_ino(inode);
2506 dentry = d_find_alias(inode);
2517 * request arguments may be specified via an inode *, a dentry *, or
2520 static int set_request_path_attr(struct inode *rinode, struct dentry *rdentry,
2521 struct inode *rdiri, const char *rpath,
2529 dout(" inode %p %llx.%llx\n", rinode, ceph_ino(rinode),
2977 int ceph_mdsc_submit_request(struct ceph_mds_client *mdsc, struct inode *dir,
3017 dout("submit_request on %p for inode %p\n", req, dir);
3081 struct inode *dir,
3102 struct inode *dir = req->r_parent;
3103 struct inode *old_dir = req->r_old_dentry_dir;
3689 static struct dentry* d_find_primary(struct inode *inode)
3693 if (hlist_empty(&inode->i_dentry))
3696 spin_lock(&inode->i_lock);
3697 if (hlist_empty(&inode->i_dentry))
3700 if (S_ISDIR(inode->i_mode)) {
3701 alias = hlist_entry(inode->i_dentry.first, struct dentry, d_u.d_alias);
3707 hlist_for_each_entry(alias, &inode->i_dentry, d_u.d_alias) {
3718 spin_unlock(&inode->i_lock);
3725 static int reconnect_caps_cb(struct inode *inode, struct ceph_cap *cap,
3742 inode, ceph_vinop(inode), cap, cap->cap_id,
3745 dentry = d_find_primary(inode);
3767 if (S_ISDIR(inode->i_mode)) {
3787 rec.v1.size = cpu_to_le64(inode->i_size);
3788 ceph_encode_timespec64(&rec.v1.mtime, &inode->i_mtime);
3789 ceph_encode_timespec64(&rec.v1.atime, &inode->i_atime);
3812 ceph_count_locks(inode, &num_fcntl_locks, &num_flock_locks);
3825 err = ceph_encode_locks_to_buffer(inode, flocks,
3871 ceph_pagelist_encode_64(pagelist, ceph_ino(inode));
3892 ceph_pagelist_encode_64(pagelist, ceph_ino(inode));
4273 struct inode *inode;
4296 /* lookup inode */
4297 inode = ceph_find_inode(sb, vino);
4299 ceph_lease_op_name(h->action), vino.ino, inode,
4305 if (!inode) {
4306 dout("handle_lease no inode %llx\n", vino.ino);
4311 parent = d_find_alias(inode);
4313 dout("no parent dentry on inode %p\n", inode);
4366 ceph_async_iput(inode);
4380 struct inode *dir;
4713 * their inode/dcache refs