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: |
