dir.c (6b93f350e55f3f2ee071dd41109d936abfba8ebf) dir.c (499aa1ca4eb6602df38afaecb88fc14edf50cdbb)
1// SPDX-License-Identifier: GPL-2.0
2#include <linux/ceph/ceph_debug.h>
3
4#include <linux/spinlock.h>
5#include <linux/namei.h>
6#include <linux/slab.h>
7#include <linux/sched.h>
8#include <linux/xattr.h>

--- 160 unchanged lines hidden (view full) ---

169 dentry = NULL;
170 rcu_read_unlock();
171 return dentry ? : ERR_PTR(-EAGAIN);
172}
173
174/*
175 * When possible, we try to satisfy a readdir by peeking at the
176 * dcache. We make this work by carefully ordering dentries on
1// SPDX-License-Identifier: GPL-2.0
2#include <linux/ceph/ceph_debug.h>
3
4#include <linux/spinlock.h>
5#include <linux/namei.h>
6#include <linux/slab.h>
7#include <linux/sched.h>
8#include <linux/xattr.h>

--- 160 unchanged lines hidden (view full) ---

169 dentry = NULL;
170 rcu_read_unlock();
171 return dentry ? : ERR_PTR(-EAGAIN);
172}
173
174/*
175 * When possible, we try to satisfy a readdir by peeking at the
176 * dcache. We make this work by carefully ordering dentries on
177 * d_child when we initially get results back from the MDS, and
177 * d_children when we initially get results back from the MDS, and
178 * falling back to a "normal" sync readdir if any dentries in the dir
179 * are dropped.
180 *
181 * Complete dir indicates that we have all dentries in the dir. It is
182 * defined IFF we hold CEPH_CAP_FILE_SHARED (which will be revoked by
183 * the MDS if/when the directory is modified).
184 */
185static int __dcache_readdir(struct file *file, struct dir_context *ctx,

--- 2050 unchanged lines hidden ---
178 * falling back to a "normal" sync readdir if any dentries in the dir
179 * are dropped.
180 *
181 * Complete dir indicates that we have all dentries in the dir. It is
182 * defined IFF we hold CEPH_CAP_FILE_SHARED (which will be revoked by
183 * the MDS if/when the directory is modified).
184 */
185static int __dcache_readdir(struct file *file, struct dir_context *ctx,

--- 2050 unchanged lines hidden ---