• Home
  • Raw
  • Download

Lines Matching +full:next +full:- +full:level +full:- +full:cache

1 .. SPDX-License-Identifier: GPL-2.0
4 Coda Kernel-Venus Interface
10 Coda -- this document describes the client kernel-Venus interface.
16 For user level software needed to run Coda:
20 To run Coda you need to get a user level cache manager for the client,
25 The server needs a user level server and at present does not depend on
35 level filesystem code needed for the operation of the Coda file sys-
49 4. The interface at the call level
98 A key component in the Coda Distributed File System is the cache
105 client cache and makes remote procedure calls to Coda file servers and
124 leads to an almost natural environment for implementing a kernel-level
153 pre-processing, the VFS starts invoking exported routines in the FS
165 offered by the cache manager Venus. When the replies from Venus have
182 requesting detailed information about the persistent cache managed by
188 Finally Venus allows the kernel FS driver to cache the results from
193 to the Coda FS layer to request flushes or updates in the cache. The
205 At the lowest level the communication between Venus and the FS driver
208 up processes. The Coda FS driver processes VFS- and pioctl-requests
220 memory for the request. Since the data buffer is re-used to hold the
228 data buffer; its structure will be described in the next section.
262 (usually a cache eviction or replacement) and when it finishes
283 processing. The VFS routine will now continue. (-- If a VFS request
286 to indicate points of no return have been passed.--)
291 ----------------------------
309 4. The interface at the call level
354 ----------------------------------------------------
378 The next item is the fundamental identifier used to identify Coda
397 The next important structure shared between Venus and the kernel is
432 --------------------------
475 ----------
494 contains the ViceFid of the root of the Coda filesystem. If a non-zero
500 ------------
540 not be put in the kernel name cache.
549 -------------
586 both at the Venus/kernel interaction level and at the RPC level.
593 -------------
616 in BSD style. Attributes not to be changed are set to -1, apart from
628 ------------
659 ------------
697 instantiate a vnode, inode or file handle at kernel level for the new
722 -----------
768 -----------
801 --------------
836 -------------
868 ------------
897 ---------------
931 -----------
958 VFid in its cache and to note that the calling process wishes to open
975 ------------
1007 currently Venus might think a file can be flushed from the cache when
1012 ------------
1053 -------------
1083 --------------
1119 files. We will re-evaluate this during the directory revamp which is
1124 -----------
1128 instructs Venus to do an FSDB->Get.
1156 These can be "pinned" in the Venus cache using vget and released with
1161 ------------
1182 should be called as part of kernel level fsync type calls. The
1189 ---------------
1215 -----------
1259 ---------------
1294 -----------------
1315 -----------------
1334 ---------------
1361 -------------
1377 This is an out-of-band upcall to Venus to inform Venus
1399 The Coda FS Driver can cache results of lookup and access upcalls, to
1412 The current minicache implementations have cache entries which record
1424 desired object from the cache, by passing its name, directory and the
1425 CodaCred's of the caller. The cache will return the cnode or indicate
1427 invalidate cache entries when it modifies or removes objects.
1429 When Venus obtains information that indicates that cache entries are
1431 intercepted by the Coda FS Driver and lead to cache invalidations of
1437 ----------------
1444 -----------
1452 Flush the name cache entirely.
1456 is to prevent stale cache information being held. Some operating
1457 systems allow the kernel name cache to be switched off dynamically.
1462 ---------------
1468 struct cfs_purgeuser_out {/* CFS_PURGEUSER is a venus->kernel call */
1475 Remove all entries in the cache carrying the Cred. This
1480 -------------
1486 struct cfs_zapfile_out { /* CFS_ZAPFILE is a venus->kernel call */
1506 ------------
1512 struct cfs_zapdir_out { /* CFS_ZAPDIR is a venus->kernel call */
1519 Remove all entries in the cache lying in a directory
1525 --------------
1532 struct cfs_zapvnode_out { /* CFS_ZAPVNODE is a venus->kernel call */
1540 Remove all entries in the cache carrying the cred and VFid
1545 --------------
1551 struct cfs_purgefid_out { /* CFS_PURGEFID is a venus->kernel call */
1565 -------------
1574 struct cfs_replace_out { /* cfs_replace is a venus->kernel call */
1582 This routine replaces a ViceFid in the name cache with
1602 3. name cache entries
1604 The name cache entries are entirely private to the driver, so they
1623 ------------------
1631 - Before opening, no messages can be placed.
1633 - Opening will remove any old messages still pending.
1635 - Close will notify any sleeping processes that their upcall cannot
1638 - Close will free all memory allocated by the message queues.