diff options
Diffstat (limited to 'Documentation/filesystems/caching/netfs-api.txt')
-rw-r--r-- | Documentation/filesystems/caching/netfs-api.txt | 37 |
1 files changed, 31 insertions, 6 deletions
diff --git a/Documentation/filesystems/caching/netfs-api.txt b/Documentation/filesystems/caching/netfs-api.txt index 97e6c0ecc5ef..11a0a40ce445 100644 --- a/Documentation/filesystems/caching/netfs-api.txt +++ b/Documentation/filesystems/caching/netfs-api.txt | |||
@@ -32,7 +32,7 @@ This document contains the following sections: | |||
32 | (9) Setting the data file size | 32 | (9) Setting the data file size |
33 | (10) Page alloc/read/write | 33 | (10) Page alloc/read/write |
34 | (11) Page uncaching | 34 | (11) Page uncaching |
35 | (12) Index and data file update | 35 | (12) Index and data file consistency |
36 | (13) Miscellaneous cookie operations | 36 | (13) Miscellaneous cookie operations |
37 | (14) Cookie unregistration | 37 | (14) Cookie unregistration |
38 | (15) Index invalidation | 38 | (15) Index invalidation |
@@ -433,7 +433,7 @@ to the caller. The attribute adjustment excludes read and write operations. | |||
433 | 433 | ||
434 | 434 | ||
435 | ===================== | 435 | ===================== |
436 | PAGE READ/ALLOC/WRITE | 436 | PAGE ALLOC/READ/WRITE |
437 | ===================== | 437 | ===================== |
438 | 438 | ||
439 | And the sixth step is to store and retrieve pages in the cache. There are | 439 | And the sixth step is to store and retrieve pages in the cache. There are |
@@ -499,7 +499,7 @@ Else if there's a copy of the page resident in the cache: | |||
499 | (*) An argument that's 0 on success or negative for an error code. | 499 | (*) An argument that's 0 on success or negative for an error code. |
500 | 500 | ||
501 | If an error occurs, it should be assumed that the page contains no usable | 501 | If an error occurs, it should be assumed that the page contains no usable |
502 | data. | 502 | data. fscache_readpages_cancel() may need to be called. |
503 | 503 | ||
504 | end_io_func() will be called in process context if the read is results in | 504 | end_io_func() will be called in process context if the read is results in |
505 | an error, but it might be called in interrupt context if the read is | 505 | an error, but it might be called in interrupt context if the read is |
@@ -623,6 +623,22 @@ some of the pages being read and some being allocated. Those pages will have | |||
623 | been marked appropriately and will need uncaching. | 623 | been marked appropriately and will need uncaching. |
624 | 624 | ||
625 | 625 | ||
626 | CANCELLATION OF UNREAD PAGES | ||
627 | ---------------------------- | ||
628 | |||
629 | If one or more pages are passed to fscache_read_or_alloc_pages() but not then | ||
630 | read from the cache and also not read from the underlying filesystem then | ||
631 | those pages will need to have any marks and reservations removed. This can be | ||
632 | done by calling: | ||
633 | |||
634 | void fscache_readpages_cancel(struct fscache_cookie *cookie, | ||
635 | struct list_head *pages); | ||
636 | |||
637 | prior to returning to the caller. The cookie argument should be as passed to | ||
638 | fscache_read_or_alloc_pages(). Every page in the pages list will be examined | ||
639 | and any that have PG_fscache set will be uncached. | ||
640 | |||
641 | |||
626 | ============== | 642 | ============== |
627 | PAGE UNCACHING | 643 | PAGE UNCACHING |
628 | ============== | 644 | ============== |
@@ -690,9 +706,18 @@ written to the cache and for the cache to finish with the page generally. No | |||
690 | error is returned. | 706 | error is returned. |
691 | 707 | ||
692 | 708 | ||
693 | ========================== | 709 | =============================== |
694 | INDEX AND DATA FILE UPDATE | 710 | INDEX AND DATA FILE CONSISTENCY |
695 | ========================== | 711 | =============================== |
712 | |||
713 | To find out whether auxiliary data for an object is up to data within the | ||
714 | cache, the following function can be called: | ||
715 | |||
716 | int fscache_check_consistency(struct fscache_cookie *cookie) | ||
717 | |||
718 | This will call back to the netfs to check whether the auxiliary data associated | ||
719 | with a cookie is correct. It returns 0 if it is and -ESTALE if it isn't; it | ||
720 | may also return -ENOMEM and -ERESTARTSYS. | ||
696 | 721 | ||
697 | To request an update of the index data for an index or other object, the | 722 | To request an update of the index data for an index or other object, the |
698 | following function should be called: | 723 | following function should be called: |