diff options
Diffstat (limited to 'Documentation/filesystems')
-rw-r--r-- | Documentation/filesystems/Locking | 12 | ||||
-rw-r--r-- | Documentation/filesystems/f2fs.txt | 6 | ||||
-rw-r--r-- | Documentation/filesystems/nfs/nfs-rdma.txt | 9 | ||||
-rw-r--r-- | Documentation/filesystems/porting | 12 | ||||
-rw-r--r-- | Documentation/filesystems/proc.txt | 21 | ||||
-rw-r--r-- | Documentation/filesystems/vfs.txt | 8 | ||||
-rw-r--r-- | Documentation/filesystems/xfs.txt | 29 |
7 files changed, 58 insertions, 39 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 |
diff --git a/Documentation/filesystems/f2fs.txt b/Documentation/filesystems/f2fs.txt index dac11d7fef27..e9e750e59efc 100644 --- a/Documentation/filesystems/f2fs.txt +++ b/Documentation/filesystems/f2fs.txt | |||
@@ -140,6 +140,12 @@ nobarrier This option can be used if underlying storage guarantees | |||
140 | fastboot This option is used when a system wants to reduce mount | 140 | fastboot This option is used when a system wants to reduce mount |
141 | time as much as possible, even though normal performance | 141 | time as much as possible, even though normal performance |
142 | can be sacrificed. | 142 | can be sacrificed. |
143 | extent_cache Enable an extent cache based on rb-tree, it can cache | ||
144 | as many as extent which map between contiguous logical | ||
145 | address and physical address per inode, resulting in | ||
146 | increasing the cache hit ratio. | ||
147 | noinline_data Disable the inline data feature, inline data feature is | ||
148 | enabled by default. | ||
143 | 149 | ||
144 | ================================================================================ | 150 | ================================================================================ |
145 | DEBUGFS ENTRIES | 151 | DEBUGFS ENTRIES |
diff --git a/Documentation/filesystems/nfs/nfs-rdma.txt b/Documentation/filesystems/nfs/nfs-rdma.txt index 724043858b08..95c13aa575ff 100644 --- a/Documentation/filesystems/nfs/nfs-rdma.txt +++ b/Documentation/filesystems/nfs/nfs-rdma.txt | |||
@@ -187,8 +187,10 @@ Check RDMA and NFS Setup | |||
187 | To further test the InfiniBand software stack, use IPoIB (this | 187 | To further test the InfiniBand software stack, use IPoIB (this |
188 | assumes you have two IB hosts named host1 and host2): | 188 | assumes you have two IB hosts named host1 and host2): |
189 | 189 | ||
190 | host1$ ifconfig ib0 a.b.c.x | 190 | host1$ ip link set dev ib0 up |
191 | host2$ ifconfig ib0 a.b.c.y | 191 | host1$ ip address add dev ib0 a.b.c.x |
192 | host2$ ip link set dev ib0 up | ||
193 | host2$ ip address add dev ib0 a.b.c.y | ||
192 | host1$ ping a.b.c.y | 194 | host1$ ping a.b.c.y |
193 | host2$ ping a.b.c.x | 195 | host2$ ping a.b.c.x |
194 | 196 | ||
@@ -229,7 +231,8 @@ NFS/RDMA Setup | |||
229 | 231 | ||
230 | $ modprobe ib_mthca | 232 | $ modprobe ib_mthca |
231 | $ modprobe ib_ipoib | 233 | $ modprobe ib_ipoib |
232 | $ ifconfig ib0 a.b.c.d | 234 | $ ip li set dev ib0 up |
235 | $ ip addr add dev ib0 a.b.c.d | ||
233 | 236 | ||
234 | NOTE: use unique addresses for the client and server | 237 | NOTE: use unique addresses for the client and server |
235 | 238 | ||
diff --git a/Documentation/filesystems/porting b/Documentation/filesystems/porting index fa2db081505e..e69274de8d0c 100644 --- a/Documentation/filesystems/porting +++ b/Documentation/filesystems/porting | |||
@@ -471,3 +471,15 @@ in your dentry operations instead. | |||
471 | [mandatory] | 471 | [mandatory] |
472 | f_dentry is gone; use f_path.dentry, or, better yet, see if you can avoid | 472 | f_dentry is gone; use f_path.dentry, or, better yet, see if you can avoid |
473 | it entirely. | 473 | it entirely. |
474 | -- | ||
475 | [mandatory] | ||
476 | never call ->read() and ->write() directly; use __vfs_{read,write} or | ||
477 | wrappers; instead of checking for ->write or ->read being NULL, look for | ||
478 | FMODE_CAN_{WRITE,READ} in file->f_mode. | ||
479 | -- | ||
480 | [mandatory] | ||
481 | do _not_ use new_sync_{read,write} for ->read/->write; leave it NULL | ||
482 | instead. | ||
483 | -- | ||
484 | [mandatory] | ||
485 | ->aio_read/->aio_write are gone. Use ->read_iter/->write_iter. | ||
diff --git a/Documentation/filesystems/proc.txt b/Documentation/filesystems/proc.txt index a07ba61662ed..c3b6b301d8b0 100644 --- a/Documentation/filesystems/proc.txt +++ b/Documentation/filesystems/proc.txt | |||
@@ -200,12 +200,12 @@ contains details information about the process itself. Its fields are | |||
200 | explained in Table 1-4. | 200 | explained in Table 1-4. |
201 | 201 | ||
202 | (for SMP CONFIG users) | 202 | (for SMP CONFIG users) |
203 | For making accounting scalable, RSS related information are handled in | 203 | For making accounting scalable, RSS related information are handled in an |
204 | asynchronous manner and the vaule may not be very precise. To see a precise | 204 | asynchronous manner and the value may not be very precise. To see a precise |
205 | snapshot of a moment, you can see /proc/<pid>/smaps file and scan page table. | 205 | snapshot of a moment, you can see /proc/<pid>/smaps file and scan page table. |
206 | It's slow but very precise. | 206 | It's slow but very precise. |
207 | 207 | ||
208 | Table 1-2: Contents of the status files (as of 2.6.30-rc7) | 208 | Table 1-2: Contents of the status files (as of 3.20.0) |
209 | .............................................................................. | 209 | .............................................................................. |
210 | Field Content | 210 | Field Content |
211 | Name filename of the executable | 211 | Name filename of the executable |
@@ -213,6 +213,7 @@ Table 1-2: Contents of the status files (as of 2.6.30-rc7) | |||
213 | in an uninterruptible wait, Z is zombie, | 213 | in an uninterruptible wait, Z is zombie, |
214 | T is traced or stopped) | 214 | T is traced or stopped) |
215 | Tgid thread group ID | 215 | Tgid thread group ID |
216 | Ngid NUMA group ID (0 if none) | ||
216 | Pid process id | 217 | Pid process id |
217 | PPid process id of the parent process | 218 | PPid process id of the parent process |
218 | TracerPid PID of process tracing this process (0 if not) | 219 | TracerPid PID of process tracing this process (0 if not) |
@@ -220,6 +221,10 @@ Table 1-2: Contents of the status files (as of 2.6.30-rc7) | |||
220 | Gid Real, effective, saved set, and file system GIDs | 221 | Gid Real, effective, saved set, and file system GIDs |
221 | FDSize number of file descriptor slots currently allocated | 222 | FDSize number of file descriptor slots currently allocated |
222 | Groups supplementary group list | 223 | Groups supplementary group list |
224 | NStgid descendant namespace thread group ID hierarchy | ||
225 | NSpid descendant namespace process ID hierarchy | ||
226 | NSpgid descendant namespace process group ID hierarchy | ||
227 | NSsid descendant namespace session ID hierarchy | ||
223 | VmPeak peak virtual memory size | 228 | VmPeak peak virtual memory size |
224 | VmSize total program size | 229 | VmSize total program size |
225 | VmLck locked memory size | 230 | VmLck locked memory size |
@@ -1255,9 +1260,9 @@ Various pieces of information about kernel activity are available in the | |||
1255 | since the system first booted. For a quick look, simply cat the file: | 1260 | since the system first booted. For a quick look, simply cat the file: |
1256 | 1261 | ||
1257 | > cat /proc/stat | 1262 | > cat /proc/stat |
1258 | cpu 2255 34 2290 22625563 6290 127 456 0 0 | 1263 | cpu 2255 34 2290 22625563 6290 127 456 0 0 0 |
1259 | cpu0 1132 34 1441 11311718 3675 127 438 0 0 | 1264 | cpu0 1132 34 1441 11311718 3675 127 438 0 0 0 |
1260 | cpu1 1123 0 849 11313845 2614 0 18 0 0 | 1265 | cpu1 1123 0 849 11313845 2614 0 18 0 0 0 |
1261 | intr 114930548 113199788 3 0 5 263 0 4 [... lots more numbers ...] | 1266 | intr 114930548 113199788 3 0 5 263 0 4 [... lots more numbers ...] |
1262 | ctxt 1990473 | 1267 | ctxt 1990473 |
1263 | btime 1062191376 | 1268 | btime 1062191376 |
@@ -1704,6 +1709,10 @@ A typical output is | |||
1704 | flags: 0100002 | 1709 | flags: 0100002 |
1705 | mnt_id: 19 | 1710 | mnt_id: 19 |
1706 | 1711 | ||
1712 | All locks associated with a file descriptor are shown in its fdinfo too. | ||
1713 | |||
1714 | lock: 1: FLOCK ADVISORY WRITE 359 00:13:11691 0 EOF | ||
1715 | |||
1707 | The files such as eventfd, fsnotify, signalfd, epoll among the regular pos/flags | 1716 | The files such as eventfd, fsnotify, signalfd, epoll among the regular pos/flags |
1708 | pair provide additional information particular to the objects they represent. | 1717 | pair provide additional information particular to the objects they represent. |
1709 | 1718 | ||
diff --git a/Documentation/filesystems/vfs.txt b/Documentation/filesystems/vfs.txt index 966b22829f3b..5d833b32bbcd 100644 --- a/Documentation/filesystems/vfs.txt +++ b/Documentation/filesystems/vfs.txt | |||
@@ -590,7 +590,7 @@ struct address_space_operations { | |||
590 | void (*invalidatepage) (struct page *, unsigned int, unsigned int); | 590 | void (*invalidatepage) (struct page *, unsigned int, unsigned int); |
591 | int (*releasepage) (struct page *, int); | 591 | int (*releasepage) (struct page *, int); |
592 | void (*freepage)(struct page *); | 592 | void (*freepage)(struct page *); |
593 | ssize_t (*direct_IO)(int, struct kiocb *, struct iov_iter *iter, loff_t offset); | 593 | ssize_t (*direct_IO)(struct kiocb *, struct iov_iter *iter, loff_t offset); |
594 | /* migrate the contents of a page to the specified target */ | 594 | /* migrate the contents of a page to the specified target */ |
595 | int (*migratepage) (struct page *, struct page *); | 595 | int (*migratepage) (struct page *, struct page *); |
596 | int (*launder_page) (struct page *); | 596 | int (*launder_page) (struct page *); |
@@ -804,8 +804,6 @@ struct file_operations { | |||
804 | loff_t (*llseek) (struct file *, loff_t, int); | 804 | loff_t (*llseek) (struct file *, loff_t, int); |
805 | ssize_t (*read) (struct file *, char __user *, size_t, loff_t *); | 805 | ssize_t (*read) (struct file *, char __user *, size_t, loff_t *); |
806 | ssize_t (*write) (struct file *, const char __user *, size_t, loff_t *); | 806 | ssize_t (*write) (struct file *, const char __user *, size_t, loff_t *); |
807 | ssize_t (*aio_read) (struct kiocb *, const struct iovec *, unsigned long, loff_t); | ||
808 | ssize_t (*aio_write) (struct kiocb *, const struct iovec *, unsigned long, loff_t); | ||
809 | ssize_t (*read_iter) (struct kiocb *, struct iov_iter *); | 807 | ssize_t (*read_iter) (struct kiocb *, struct iov_iter *); |
810 | ssize_t (*write_iter) (struct kiocb *, struct iov_iter *); | 808 | ssize_t (*write_iter) (struct kiocb *, struct iov_iter *); |
811 | int (*iterate) (struct file *, struct dir_context *); | 809 | int (*iterate) (struct file *, struct dir_context *); |
@@ -838,14 +836,10 @@ otherwise noted. | |||
838 | 836 | ||
839 | read: called by read(2) and related system calls | 837 | read: called by read(2) and related system calls |
840 | 838 | ||
841 | aio_read: vectored, possibly asynchronous read | ||
842 | |||
843 | read_iter: possibly asynchronous read with iov_iter as destination | 839 | read_iter: possibly asynchronous read with iov_iter as destination |
844 | 840 | ||
845 | write: called by write(2) and related system calls | 841 | write: called by write(2) and related system calls |
846 | 842 | ||
847 | aio_write: vectored, possibly asynchronous write | ||
848 | |||
849 | write_iter: possibly asynchronous write with iov_iter as source | 843 | write_iter: possibly asynchronous write with iov_iter as source |
850 | 844 | ||
851 | iterate: called when the VFS needs to read the directory contents | 845 | iterate: called when the VFS needs to read the directory contents |
diff --git a/Documentation/filesystems/xfs.txt b/Documentation/filesystems/xfs.txt index 0bfafe108357..5a5a05582b58 100644 --- a/Documentation/filesystems/xfs.txt +++ b/Documentation/filesystems/xfs.txt | |||
@@ -228,30 +228,19 @@ default behaviour. | |||
228 | Deprecated Mount Options | 228 | Deprecated Mount Options |
229 | ======================== | 229 | ======================== |
230 | 230 | ||
231 | delaylog/nodelaylog | 231 | None at present. |
232 | Delayed logging is the only logging method that XFS supports | ||
233 | now, so these mount options are now ignored. | ||
234 | |||
235 | Due for removal in 3.12. | ||
236 | |||
237 | ihashsize=value | ||
238 | In memory inode hashes have been removed, so this option has | ||
239 | no function as of August 2007. Option is deprecated. | ||
240 | |||
241 | Due for removal in 3.12. | ||
242 | 232 | ||
243 | irixsgid | ||
244 | This behaviour is now controlled by a sysctl, so the mount | ||
245 | option is ignored. | ||
246 | 233 | ||
247 | Due for removal in 3.12. | 234 | Removed Mount Options |
235 | ===================== | ||
248 | 236 | ||
249 | osyncisdsync | 237 | Name Removed |
250 | osyncisosync | 238 | ---- ------- |
251 | O_SYNC and O_DSYNC are fully supported, so there is no need | 239 | delaylog/nodelaylog v3.20 |
252 | for these options any more. | 240 | ihashsize v3.20 |
241 | irixsgid v3.20 | ||
242 | osyncisdsync/osyncisosync v3.20 | ||
253 | 243 | ||
254 | Due for removal in 3.12. | ||
255 | 244 | ||
256 | sysctls | 245 | sysctls |
257 | ======= | 246 | ======= |