diff options
Diffstat (limited to 'Documentation/filesystems/caching/netfs-api.txt')
| -rw-r--r-- | Documentation/filesystems/caching/netfs-api.txt | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/Documentation/filesystems/caching/netfs-api.txt b/Documentation/filesystems/caching/netfs-api.txt index 2666b1ed5e9e..1902c57b72ef 100644 --- a/Documentation/filesystems/caching/netfs-api.txt +++ b/Documentation/filesystems/caching/netfs-api.txt | |||
| @@ -641,7 +641,7 @@ data file must be retired (see the relinquish cookie function below). | |||
| 641 | 641 | ||
| 642 | Furthermore, note that this does not cancel the asynchronous read or write | 642 | Furthermore, note that this does not cancel the asynchronous read or write |
| 643 | operation started by the read/alloc and write functions, so the page | 643 | operation started by the read/alloc and write functions, so the page |
| 644 | invalidation and release functions must use: | 644 | invalidation functions must use: |
| 645 | 645 | ||
| 646 | bool fscache_check_page_write(struct fscache_cookie *cookie, | 646 | bool fscache_check_page_write(struct fscache_cookie *cookie, |
| 647 | struct page *page); | 647 | struct page *page); |
| @@ -654,6 +654,25 @@ to see if a page is being written to the cache, and: | |||
| 654 | to wait for it to finish if it is. | 654 | to wait for it to finish if it is. |
| 655 | 655 | ||
| 656 | 656 | ||
| 657 | When releasepage() is being implemented, a special FS-Cache function exists to | ||
| 658 | manage the heuristics of coping with vmscan trying to eject pages, which may | ||
| 659 | conflict with the cache trying to write pages to the cache (which may itself | ||
| 660 | need to allocate memory): | ||
| 661 | |||
| 662 | bool fscache_maybe_release_page(struct fscache_cookie *cookie, | ||
| 663 | struct page *page, | ||
| 664 | gfp_t gfp); | ||
| 665 | |||
| 666 | This takes the netfs cookie, and the page and gfp arguments as supplied to | ||
| 667 | releasepage(). It will return false if the page cannot be released yet for | ||
| 668 | some reason and if it returns true, the page has been uncached and can now be | ||
| 669 | released. | ||
| 670 | |||
| 671 | To make a page available for release, this function may wait for an outstanding | ||
| 672 | storage request to complete, or it may attempt to cancel the storage request - | ||
| 673 | in which case the page will not be stored in the cache this time. | ||
| 674 | |||
| 675 | |||
| 657 | ========================== | 676 | ========================== |
| 658 | INDEX AND DATA FILE UPDATE | 677 | INDEX AND DATA FILE UPDATE |
| 659 | ========================== | 678 | ========================== |
