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
..
2015-06-25 11:49:32 +03:00
2015-06-25 11:49:32 +03:00
2015-06-25 11:49:32 +03:00
2015-06-25 11:49:32 +03:00
2012-05-16 14:28:27 -05:00
2013-12-31 20:32:01 +02:00
2013-12-31 20:32:01 +02:00
2015-06-25 11:49:32 +03:00
2015-04-22 18:33:41 +03:00
2015-06-25 11:49:32 +03:00