Lines Matching refs:ctl
1578 void ceph_readdir_cache_release(struct ceph_readdir_cache_control *ctl) in ceph_readdir_cache_release() argument
1580 if (ctl->page) { in ceph_readdir_cache_release()
1581 kunmap(ctl->page); in ceph_readdir_cache_release()
1582 put_page(ctl->page); in ceph_readdir_cache_release()
1583 ctl->page = NULL; in ceph_readdir_cache_release()
1588 struct ceph_readdir_cache_control *ctl, in fill_readdir_cache() argument
1593 unsigned idx = ctl->index % nsize; in fill_readdir_cache()
1594 pgoff_t pgoff = ctl->index / nsize; in fill_readdir_cache()
1596 if (!ctl->page || pgoff != page_index(ctl->page)) { in fill_readdir_cache()
1597 ceph_readdir_cache_release(ctl); in fill_readdir_cache()
1599 ctl->page = grab_cache_page(&dir->i_data, pgoff); in fill_readdir_cache()
1601 ctl->page = find_lock_page(&dir->i_data, pgoff); in fill_readdir_cache()
1602 if (!ctl->page) { in fill_readdir_cache()
1603 ctl->index = -1; in fill_readdir_cache()
1608 unlock_page(ctl->page); in fill_readdir_cache()
1609 ctl->dentries = kmap(ctl->page); in fill_readdir_cache()
1611 memset(ctl->dentries, 0, PAGE_SIZE); in fill_readdir_cache()
1616 dout("readdir cache dn %p idx %d\n", dn, ctl->index); in fill_readdir_cache()
1617 ctl->dentries[idx] = dn; in fill_readdir_cache()
1618 ctl->index++; in fill_readdir_cache()
1621 ctl->index = -1; in fill_readdir_cache()