• Home
  • Raw
  • Download

Lines Matching refs:ctl

424 	struct ncp_cache_control ctl;  in ncp_readdir()  local
428 ctl.page = NULL; in ncp_readdir()
429 ctl.cache = NULL; in ncp_readdir()
446 ctl.cache = cache = kmap(page); in ncp_readdir()
447 ctl.head = cache->head; in ncp_readdir()
449 if (!PageUptodate(page) || !ctl.head.eof) in ncp_readdir()
453 if (jiffies - ctl.head.time >= NCP_MAX_AGE(server)) in ncp_readdir()
458 if ((!mtime) || (mtime != ctl.head.mtime)) in ncp_readdir()
462 if (ctx->pos > ctl.head.end) in ncp_readdir()
465 ctl.fpos = ctx->pos + (NCP_DIRCACHE_START - 2); in ncp_readdir()
466 ctl.ofs = ctl.fpos / NCP_DIRCACHE_SIZE; in ncp_readdir()
467 ctl.idx = ctl.fpos % NCP_DIRCACHE_SIZE; in ncp_readdir()
470 if (ctl.ofs != 0) { in ncp_readdir()
471 ctl.page = find_lock_page(&inode->i_data, ctl.ofs); in ncp_readdir()
472 if (!ctl.page) in ncp_readdir()
474 ctl.cache = kmap(ctl.page); in ncp_readdir()
475 if (!PageUptodate(ctl.page)) in ncp_readdir()
478 while (ctl.idx < NCP_DIRCACHE_SIZE) { in ncp_readdir()
487 dent = ctl.cache->dentry[ctl.idx]; in ncp_readdir()
504 ctl.idx += 1; in ncp_readdir()
505 if (ctx->pos > ctl.head.end) in ncp_readdir()
508 if (ctl.page) { in ncp_readdir()
509 kunmap(ctl.page); in ncp_readdir()
510 SetPageUptodate(ctl.page); in ncp_readdir()
511 unlock_page(ctl.page); in ncp_readdir()
512 page_cache_release(ctl.page); in ncp_readdir()
513 ctl.page = NULL; in ncp_readdir()
515 ctl.idx = 0; in ncp_readdir()
516 ctl.ofs += 1; in ncp_readdir()
519 if (ctl.page) { in ncp_readdir()
520 kunmap(ctl.page); in ncp_readdir()
521 unlock_page(ctl.page); in ncp_readdir()
522 page_cache_release(ctl.page); in ncp_readdir()
523 ctl.page = NULL; in ncp_readdir()
525 ctl.cache = cache; in ncp_readdir()
532 ctl.head.mtime = mtime; in ncp_readdir()
533 ctl.head.time = jiffies; in ncp_readdir()
534 ctl.head.eof = 0; in ncp_readdir()
535 ctl.fpos = 2; in ncp_readdir()
536 ctl.ofs = 0; in ncp_readdir()
537 ctl.idx = NCP_DIRCACHE_START; in ncp_readdir()
538 ctl.filled = 0; in ncp_readdir()
539 ctl.valid = 1; in ncp_readdir()
545 ncp_read_volume_list(file, ctx, &ctl); in ncp_readdir()
547 ncp_do_readdir(file, ctx, &ctl); in ncp_readdir()
549 ctl.head.end = ctl.fpos - 1; in ncp_readdir()
550 ctl.head.eof = ctl.valid; in ncp_readdir()
552 if (ctl.page) { in ncp_readdir()
553 kunmap(ctl.page); in ncp_readdir()
554 SetPageUptodate(ctl.page); in ncp_readdir()
555 unlock_page(ctl.page); in ncp_readdir()
556 page_cache_release(ctl.page); in ncp_readdir()
559 cache->head = ctl.head; in ncp_readdir()
583 struct ncp_cache_control ctl = *ctrl; in ncp_fill_cache() local
646 if (ctl.idx >= NCP_DIRCACHE_SIZE) { in ncp_fill_cache()
647 if (ctl.page) { in ncp_fill_cache()
648 kunmap(ctl.page); in ncp_fill_cache()
649 SetPageUptodate(ctl.page); in ncp_fill_cache()
650 unlock_page(ctl.page); in ncp_fill_cache()
651 page_cache_release(ctl.page); in ncp_fill_cache()
653 ctl.cache = NULL; in ncp_fill_cache()
654 ctl.idx -= NCP_DIRCACHE_SIZE; in ncp_fill_cache()
655 ctl.ofs += 1; in ncp_fill_cache()
656 ctl.page = grab_cache_page(&dir->i_data, ctl.ofs); in ncp_fill_cache()
657 if (ctl.page) in ncp_fill_cache()
658 ctl.cache = kmap(ctl.page); in ncp_fill_cache()
660 if (ctl.cache) { in ncp_fill_cache()
663 ctl.cache->dentry[ctl.idx] = newdent; in ncp_fill_cache()
672 ctl.valid = 0; in ncp_fill_cache()
673 if (!ctl.filled && (ctl.fpos == ctx->pos)) { in ncp_fill_cache()
676 ctl.filled = !dir_emit(ctx, qname.name, qname.len, in ncp_fill_cache()
678 if (!ctl.filled) in ncp_fill_cache()
681 ctl.fpos += 1; in ncp_fill_cache()
682 ctl.idx += 1; in ncp_fill_cache()
683 *ctrl = ctl; in ncp_fill_cache()
684 return (ctl.valid || !ctl.filled); in ncp_fill_cache()
689 struct ncp_cache_control *ctl) in ncp_read_volume_list() argument
717 if (!ncp_fill_cache(file, ctx, ctl, &entry, inval_dentry)) in ncp_read_volume_list()
724 struct ncp_cache_control *ctl) in ncp_do_readdir() argument
776 if (!ncp_fill_cache(file, ctx, ctl, &entry, 0)) in ncp_do_readdir()