summaryrefslogtreecommitdiffstats
path: root/drivers/block
diff options
context:
space:
mode:
authorYan, Zheng <zyan@redhat.com>2015-06-16 20:48:56 +0800
committerIlya Dryomov <idryomov@gmail.com>2015-06-25 11:49:32 +0300
commitfdd4e15838e59c394a1ec4963b57c22c12608685 (patch)
treeb5486f7b0f12abf9ed670d187f4841dfdb2aa13e /drivers/block
parentb459be739f97e2062b2ba77cfe8ea198dbd58904 (diff)
downloadop-kernel-dev-fdd4e15838e59c394a1ec4963b57c22c12608685.zip
op-kernel-dev-fdd4e15838e59c394a1ec4963b57c22c12608685.tar.gz
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>
Diffstat (limited to 'drivers/block')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud