diff options
Diffstat (limited to 'Documentation/filesystems/Locking')
-rw-r--r-- | Documentation/filesystems/Locking | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/Documentation/filesystems/Locking b/Documentation/filesystems/Locking index a91f30890011..b6426f15b4ae 100644 --- a/Documentation/filesystems/Locking +++ b/Documentation/filesystems/Locking | |||
@@ -173,12 +173,13 @@ prototypes: | |||
173 | sector_t (*bmap)(struct address_space *, sector_t); | 173 | sector_t (*bmap)(struct address_space *, sector_t); |
174 | int (*invalidatepage) (struct page *, unsigned long); | 174 | int (*invalidatepage) (struct page *, unsigned long); |
175 | int (*releasepage) (struct page *, int); | 175 | int (*releasepage) (struct page *, int); |
176 | void (*freepage)(struct page *); | ||
176 | int (*direct_IO)(int, struct kiocb *, const struct iovec *iov, | 177 | int (*direct_IO)(int, struct kiocb *, const struct iovec *iov, |
177 | loff_t offset, unsigned long nr_segs); | 178 | loff_t offset, unsigned long nr_segs); |
178 | int (*launder_page) (struct page *); | 179 | int (*launder_page) (struct page *); |
179 | 180 | ||
180 | locking rules: | 181 | locking rules: |
181 | All except set_page_dirty may block | 182 | All except set_page_dirty and freepage may block |
182 | 183 | ||
183 | BKL PageLocked(page) i_mutex | 184 | BKL PageLocked(page) i_mutex |
184 | writepage: no yes, unlocks (see below) | 185 | writepage: no yes, unlocks (see below) |
@@ -193,6 +194,7 @@ perform_write: no n/a yes | |||
193 | bmap: no | 194 | bmap: no |
194 | invalidatepage: no yes | 195 | invalidatepage: no yes |
195 | releasepage: no yes | 196 | releasepage: no yes |
197 | freepage: no yes | ||
196 | direct_IO: no | 198 | direct_IO: no |
197 | launder_page: no yes | 199 | launder_page: no yes |
198 | 200 | ||
@@ -288,6 +290,9 @@ buffers from the page in preparation for freeing it. It returns zero to | |||
288 | indicate that the buffers are (or may be) freeable. If ->releasepage is zero, | 290 | indicate that the buffers are (or may be) freeable. If ->releasepage is zero, |
289 | the kernel assumes that the fs has no private interest in the buffers. | 291 | the kernel assumes that the fs has no private interest in the buffers. |
290 | 292 | ||
293 | ->freepage() is called when the kernel is done dropping the page | ||
294 | from the page cache. | ||
295 | |||
291 | ->launder_page() may be called prior to releasing a page if | 296 | ->launder_page() may be called prior to releasing a page if |
292 | it is still found to be dirty. It returns zero if the page was successfully | 297 | it is still found to be dirty. It returns zero if the page was successfully |
293 | cleaned, or an error value if not. Note that in order to prevent the page | 298 | cleaned, or an error value if not. Note that in order to prevent the page |