Lines Matching refs:qri
86 struct ceph_quotarealm_inode *qri = NULL;
93 qri = container_of(*node, struct ceph_quotarealm_inode, node);
95 if (ino < qri->ino)
97 else if (ino > qri->ino)
102 if (!qri || (qri->ino != ino)) {
104 qri = kmalloc(sizeof(*qri), GFP_KERNEL);
105 if (qri) {
106 qri->ino = ino;
107 qri->inode = NULL;
108 qri->timeout = 0;
109 mutex_init(&qri->mutex);
110 rb_link_node(&qri->node, parent, node);
111 rb_insert_color(&qri->node, &mdsc->quotarealms_inodes);
117 return qri;
132 struct ceph_quotarealm_inode *qri;
135 qri = find_quotarealm_inode(mdsc, realm->ino);
136 if (!qri)
139 mutex_lock(&qri->mutex);
140 if (qri->inode && ceph_is_any_caps(qri->inode)) {
142 mutex_unlock(&qri->mutex);
143 return qri->inode;
146 if (qri->timeout &&
147 time_before_eq(jiffies, qri->timeout)) {
148 mutex_unlock(&qri->mutex);
151 if (qri->inode) {
153 int ret = __ceph_do_getattr(qri->inode, NULL,
156 in = qri->inode;
166 qri->timeout = jiffies + msecs_to_jiffies(60 * 1000); /* XXX */
168 qri->timeout = 0;
169 qri->inode = in;
171 mutex_unlock(&qri->mutex);
178 struct ceph_quotarealm_inode *qri;
188 qri = rb_entry(node, struct ceph_quotarealm_inode, node);
190 iput(qri->inode);
191 kfree(qri);