提交 ed2f2f9b 编写于 作者: M Mark Fasheh 提交者: Linus Torvalds

Document ->page_mkwrite() locking

There seems to be very little documentation about this callback in general.
The locking in particular is a bit tricky, so it's worth having this in
writing.
Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
Cc: Nick Piggin <nickpiggin@yahoo.com.au>
Cc: David Howells <dhowells@redhat.com>
Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
上级 69676147
...@@ -512,13 +512,22 @@ prototypes: ...@@ -512,13 +512,22 @@ prototypes:
void (*close)(struct vm_area_struct*); void (*close)(struct vm_area_struct*);
struct page *(*fault)(struct vm_area_struct*, struct fault_data *); struct page *(*fault)(struct vm_area_struct*, struct fault_data *);
struct page *(*nopage)(struct vm_area_struct*, unsigned long, int *); struct page *(*nopage)(struct vm_area_struct*, unsigned long, int *);
int (*page_mkwrite)(struct vm_area_struct *, struct page *);
locking rules: locking rules:
BKL mmap_sem BKL mmap_sem PageLocked(page)
open: no yes open: no yes
close: no yes close: no yes
fault: no yes fault: no yes
nopage: no yes nopage: no yes
page_mkwrite: no yes no
->page_mkwrite() is called when a previously read-only page is
about to become writeable. The file system is responsible for
protecting against truncate races. Once appropriate action has been
taking to lock out truncate, the page range should be verified to be
within i_size. The page mapping should also be checked that it is not
NULL.
================================================================================ ================================================================================
Dubious stuff Dubious stuff
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册