aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/filesystems/Locking
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/filesystems/Locking')
-rw-r--r--Documentation/filesystems/Locking7
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
180locking rules: 181locking 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
184writepage: no yes, unlocks (see below) 185writepage: no yes, unlocks (see below)
@@ -193,6 +194,7 @@ perform_write: no n/a yes
193bmap: no 194bmap: no
194invalidatepage: no yes 195invalidatepage: no yes
195releasepage: no yes 196releasepage: no yes
197freepage: no yes
196direct_IO: no 198direct_IO: no
197launder_page: no yes 199launder_page: no yes
198 200
@@ -288,6 +290,9 @@ buffers from the page in preparation for freeing it. It returns zero to
288indicate that the buffers are (or may be) freeable. If ->releasepage is zero, 290indicate that the buffers are (or may be) freeable. If ->releasepage is zero,
289the kernel assumes that the fs has no private interest in the buffers. 291the 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
294from 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
292it is still found to be dirty. It returns zero if the page was successfully 297it is still found to be dirty. It returns zero if the page was successfully
293cleaned, or an error value if not. Note that in order to prevent the page 298cleaned, or an error value if not. Note that in order to prevent the page