linux/fs/ceph
Yan, Zheng fdd4e15838 ceph: rework dcache readdir
Previously our dcache readdir code relies on that child dentries in
directory dentry's d_subdir list are sorted by dentry's offset in
descending order. When adding dentries to the dcache, if a dentry
already exists, our readdir code moves it to head of directory
dentry's d_subdir list. This design relies on dcache internals.
Al Viro suggests using ncpfs's approach: keeping array of pointers
to dentries in page cache of directory inode. the validity of those
pointers are presented by directory inode's complete and ordered
flags. When a dentry gets pruned, we clear directory inode's complete
flag in the d_prune() callback. Before moving a dentry to other
directory, we clear the ordered flag for both old and new directory.

Signed-off-by: Yan, Zheng <zyan@redhat.com>
2015-06-25 11:49:32 +03:00
..
acl.c ceph: switch some GFP_NOFS memory allocation to GFP_KERNEL 2015-06-25 11:49:31 +03:00
addr.c ceph: switch some GFP_NOFS memory allocation to GFP_KERNEL 2015-06-25 11:49:31 +03:00
cache.c ceph: fscache: Wait for completion of object initialization 2014-04-03 10:33:53 +08:00
cache.h ceph: fscache: add an interface to synchronize object store limit 2014-04-03 10:33:53 +08:00
caps.c ceph: rework dcache readdir 2015-06-25 11:49:32 +03:00
ceph_frag.c ceph: factor out libceph from Ceph file system 2010-10-20 15:37:28 -07:00
debugfs.c VFS: normal filesystems (and lustre): d_inode() annotations 2015-04-15 15:06:57 -04:00
dir.c ceph: rework dcache readdir 2015-06-25 11:49:32 +03:00
export.c VFS: normal filesystems (and lustre): d_inode() annotations 2015-04-15 15:06:57 -04:00
file.c ceph: rework dcache readdir 2015-06-25 11:49:32 +03:00
inode.c ceph: rework dcache readdir 2015-06-25 11:49:32 +03:00
ioctl.c ceph: fix divide-by-zero in __validate_layout() 2014-10-14 12:57:05 -07:00
ioctl.h ceph: fully initialize new layout 2012-05-16 14:28:27 -05:00
Kconfig ceph: add acl for cephfs 2013-12-31 20:32:01 +02:00
locks.c Revert "locks: keep a count of locks on the flctx lists" 2015-02-16 14:32:03 -05:00
Makefile ceph: add acl for cephfs 2013-12-31 20:32:01 +02:00
mds_client.c ceph: switch some GFP_NOFS memory allocation to GFP_KERNEL 2015-06-25 11:49:31 +03:00
mds_client.h ceph: rework dcache readdir 2015-06-25 11:49:32 +03:00
mdsmap.c fs/ceph: replace pr_warning by pr_warn 2014-06-06 16:08:06 -07:00
snap.c ceph: make sure syncfs flushes all cap snaps 2015-06-25 11:49:29 +03:00
strings.c ceph: rename snapshot support 2015-04-22 18:33:41 +03:00
super.c ceph: pre-allocate data structure that tracks caps flushing 2015-06-25 11:49:31 +03:00
super.h ceph: rework dcache readdir 2015-06-25 11:49:32 +03:00
xattr.c ceph: pre-allocate data structure that tracks caps flushing 2015-06-25 11:49:31 +03:00