diff options
Diffstat (limited to 'Documentation/filesystems/Locking')
| -rw-r--r-- | Documentation/filesystems/Locking | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/Documentation/filesystems/Locking b/Documentation/filesystems/Locking index f91926f2f482..0a926e2ba3ab 100644 --- a/Documentation/filesystems/Locking +++ b/Documentation/filesystems/Locking | |||
| @@ -196,7 +196,7 @@ prototypes: | |||
| 196 | void (*invalidatepage) (struct page *, unsigned int, unsigned int); | 196 | void (*invalidatepage) (struct page *, unsigned int, unsigned int); |
| 197 | int (*releasepage) (struct page *, int); | 197 | int (*releasepage) (struct page *, int); |
| 198 | void (*freepage)(struct page *); | 198 | void (*freepage)(struct page *); |
| 199 | int (*direct_IO)(int, struct kiocb *, struct iov_iter *iter, loff_t offset); | 199 | int (*direct_IO)(struct kiocb *, struct iov_iter *iter, loff_t offset); |
| 200 | int (*migratepage)(struct address_space *, struct page *, struct page *); | 200 | int (*migratepage)(struct address_space *, struct page *, struct page *); |
| 201 | int (*launder_page)(struct page *); | 201 | int (*launder_page)(struct page *); |
| 202 | int (*is_partially_uptodate)(struct page *, unsigned long, unsigned long); | 202 | int (*is_partially_uptodate)(struct page *, unsigned long, unsigned long); |
| @@ -429,8 +429,6 @@ prototypes: | |||
| 429 | loff_t (*llseek) (struct file *, loff_t, int); | 429 | loff_t (*llseek) (struct file *, loff_t, int); |
| 430 | ssize_t (*read) (struct file *, char __user *, size_t, loff_t *); | 430 | ssize_t (*read) (struct file *, char __user *, size_t, loff_t *); |
| 431 | ssize_t (*write) (struct file *, const char __user *, size_t, loff_t *); | 431 | ssize_t (*write) (struct file *, const char __user *, size_t, loff_t *); |
| 432 | ssize_t (*aio_read) (struct kiocb *, const struct iovec *, unsigned long, loff_t); | ||
| 433 | ssize_t (*aio_write) (struct kiocb *, const struct iovec *, unsigned long, loff_t); | ||
| 434 | ssize_t (*read_iter) (struct kiocb *, struct iov_iter *); | 432 | ssize_t (*read_iter) (struct kiocb *, struct iov_iter *); |
| 435 | ssize_t (*write_iter) (struct kiocb *, struct iov_iter *); | 433 | ssize_t (*write_iter) (struct kiocb *, struct iov_iter *); |
| 436 | int (*iterate) (struct file *, struct dir_context *); | 434 | int (*iterate) (struct file *, struct dir_context *); |
| @@ -525,6 +523,7 @@ prototypes: | |||
| 525 | void (*close)(struct vm_area_struct*); | 523 | void (*close)(struct vm_area_struct*); |
| 526 | int (*fault)(struct vm_area_struct*, struct vm_fault *); | 524 | int (*fault)(struct vm_area_struct*, struct vm_fault *); |
| 527 | int (*page_mkwrite)(struct vm_area_struct *, struct vm_fault *); | 525 | int (*page_mkwrite)(struct vm_area_struct *, struct vm_fault *); |
| 526 | int (*pfn_mkwrite)(struct vm_area_struct *, struct vm_fault *); | ||
| 528 | int (*access)(struct vm_area_struct *, unsigned long, void*, int, int); | 527 | int (*access)(struct vm_area_struct *, unsigned long, void*, int, int); |
| 529 | 528 | ||
| 530 | locking rules: | 529 | locking rules: |
| @@ -534,6 +533,7 @@ close: yes | |||
| 534 | fault: yes can return with page locked | 533 | fault: yes can return with page locked |
| 535 | map_pages: yes | 534 | map_pages: yes |
| 536 | page_mkwrite: yes can return with page locked | 535 | page_mkwrite: yes can return with page locked |
| 536 | pfn_mkwrite: yes | ||
| 537 | access: yes | 537 | access: yes |
| 538 | 538 | ||
| 539 | ->fault() is called when a previously not present pte is about | 539 | ->fault() is called when a previously not present pte is about |
| @@ -560,6 +560,12 @@ the page has been truncated, the filesystem should not look up a new page | |||
| 560 | like the ->fault() handler, but simply return with VM_FAULT_NOPAGE, which | 560 | like the ->fault() handler, but simply return with VM_FAULT_NOPAGE, which |
| 561 | will cause the VM to retry the fault. | 561 | will cause the VM to retry the fault. |
| 562 | 562 | ||
| 563 | ->pfn_mkwrite() is the same as page_mkwrite but when the pte is | ||
| 564 | VM_PFNMAP or VM_MIXEDMAP with a page-less entry. Expected return is | ||
| 565 | VM_FAULT_NOPAGE. Or one of the VM_FAULT_ERROR types. The default behavior | ||
| 566 | after this call is to make the pte read-write, unless pfn_mkwrite returns | ||
| 567 | an error. | ||
| 568 | |||
| 563 | ->access() is called when get_user_pages() fails in | 569 | ->access() is called when get_user_pages() fails in |
| 564 | access_process_vm(), typically used to debug a process through | 570 | access_process_vm(), typically used to debug a process through |
| 565 | /proc/pid/mem or ptrace. This function is needed only for | 571 | /proc/pid/mem or ptrace. This function is needed only for |
