Lines Matching refs:ctl
1346 void ceph_readdir_cache_release(struct ceph_readdir_cache_control *ctl) in ceph_readdir_cache_release() argument
1348 if (ctl->page) { in ceph_readdir_cache_release()
1349 kunmap(ctl->page); in ceph_readdir_cache_release()
1350 page_cache_release(ctl->page); in ceph_readdir_cache_release()
1351 ctl->page = NULL; in ceph_readdir_cache_release()
1356 struct ceph_readdir_cache_control *ctl, in fill_readdir_cache() argument
1361 unsigned idx = ctl->index % nsize; in fill_readdir_cache()
1362 pgoff_t pgoff = ctl->index / nsize; in fill_readdir_cache()
1364 if (!ctl->page || pgoff != page_index(ctl->page)) { in fill_readdir_cache()
1365 ceph_readdir_cache_release(ctl); in fill_readdir_cache()
1367 ctl->page = grab_cache_page(&dir->i_data, pgoff); in fill_readdir_cache()
1369 ctl->page = find_lock_page(&dir->i_data, pgoff); in fill_readdir_cache()
1370 if (!ctl->page) { in fill_readdir_cache()
1371 ctl->index = -1; in fill_readdir_cache()
1376 unlock_page(ctl->page); in fill_readdir_cache()
1377 ctl->dentries = kmap(ctl->page); in fill_readdir_cache()
1379 memset(ctl->dentries, 0, PAGE_CACHE_SIZE); in fill_readdir_cache()
1384 dout("readdir cache dn %p idx %d\n", dn, ctl->index); in fill_readdir_cache()
1385 ctl->dentries[idx] = dn; in fill_readdir_cache()
1386 ctl->index++; in fill_readdir_cache()
1389 ctl->index = -1; in fill_readdir_cache()