diff options
Diffstat (limited to 'Documentation/filesystems')
| -rw-r--r-- | Documentation/filesystems/Locking | 12 | ||||
| -rw-r--r-- | Documentation/filesystems/dlmfs.txt | 4 | ||||
| -rw-r--r-- | Documentation/filesystems/f2fs.txt | 6 | ||||
| -rw-r--r-- | Documentation/filesystems/nfs/nfs-rdma.txt | 9 | ||||
| -rw-r--r-- | Documentation/filesystems/ocfs2.txt | 4 | ||||
| -rw-r--r-- | Documentation/filesystems/porting | 12 | ||||
| -rw-r--r-- | Documentation/filesystems/proc.txt | 21 | ||||
| -rw-r--r-- | Documentation/filesystems/vfs.txt | 8 | 
8 files changed, 53 insertions, 23 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:  	void (*invalidatepage) (struct page *, unsigned int, unsigned int);  	int (*releasepage) (struct page *, int);  	void (*freepage)(struct page *); -	int (*direct_IO)(int, struct kiocb *, struct iov_iter *iter, loff_t offset); +	int (*direct_IO)(struct kiocb *, struct iov_iter *iter, loff_t offset);  	int (*migratepage)(struct address_space *, struct page *, struct page *);  	int (*launder_page)(struct page *);  	int (*is_partially_uptodate)(struct page *, unsigned long, unsigned long); @@ -429,8 +429,6 @@ prototypes:  	loff_t (*llseek) (struct file *, loff_t, int);  	ssize_t (*read) (struct file *, char __user *, size_t, loff_t *);  	ssize_t (*write) (struct file *, const char __user *, size_t, loff_t *); -	ssize_t (*aio_read) (struct kiocb *, const struct iovec *, unsigned long, loff_t); -	ssize_t (*aio_write) (struct kiocb *, const struct iovec *, unsigned long, loff_t);  	ssize_t (*read_iter) (struct kiocb *, struct iov_iter *);  	ssize_t (*write_iter) (struct kiocb *, struct iov_iter *);  	int (*iterate) (struct file *, struct dir_context *); @@ -525,6 +523,7 @@ prototypes:  	void (*close)(struct vm_area_struct*);  	int (*fault)(struct vm_area_struct*, struct vm_fault *);  	int (*page_mkwrite)(struct vm_area_struct *, struct vm_fault *); +	int (*pfn_mkwrite)(struct vm_area_struct *, struct vm_fault *);  	int (*access)(struct vm_area_struct *, unsigned long, void*, int, int);  locking rules: @@ -534,6 +533,7 @@ close:		yes  fault:		yes		can return with page locked  map_pages:	yes  page_mkwrite:	yes		can return with page locked +pfn_mkwrite:	yes  access:		yes  	->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  like the ->fault() handler, but simply return with VM_FAULT_NOPAGE, which  will cause the VM to retry the fault. +	->pfn_mkwrite() is the same as page_mkwrite but when the pte is +VM_PFNMAP or VM_MIXEDMAP with a page-less entry. Expected return is +VM_FAULT_NOPAGE. Or one of the VM_FAULT_ERROR types. The default behavior +after this call is to make the pte read-write, unless pfn_mkwrite returns +an error. +  	->access() is called when get_user_pages() fails in  access_process_vm(), typically used to debug a process through  /proc/pid/mem or ptrace.  This function is needed only for diff --git a/Documentation/filesystems/dlmfs.txt b/Documentation/filesystems/dlmfs.txt index 1b528b2ad809..fcf4d509d118 100644 --- a/Documentation/filesystems/dlmfs.txt +++ b/Documentation/filesystems/dlmfs.txt @@ -5,8 +5,8 @@ system.  dlmfs is built with OCFS2 as it requires most of its infrastructure. -Project web page:    http://oss.oracle.com/projects/ocfs2 -Tools web page:      http://oss.oracle.com/projects/ocfs2-tools +Project web page:    http://ocfs2.wiki.kernel.org +Tools web page:      https://github.com/markfasheh/ocfs2-tools  OCFS2 mailing lists: http://oss.oracle.com/projects/ocfs2/mailman/  All code copyright 2005 Oracle except when otherwise noted. 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  fastboot               This option is used when a system wants to reduce mount                         time as much as possible, even though normal performance  		       can be sacrificed. +extent_cache           Enable an extent cache based on rb-tree, it can cache +                       as many as extent which map between contiguous logical +                       address and physical address per inode, resulting in +                       increasing the cache hit ratio. +noinline_data          Disable the inline data feature, inline data feature is +                       enabled by default.  ================================================================================  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      To further test the InfiniBand software stack, use IPoIB (this      assumes you have two IB hosts named host1 and host2): -    host1$ ifconfig ib0 a.b.c.x -    host2$ ifconfig ib0 a.b.c.y +    host1$ ip link set dev ib0 up +    host1$ ip address add dev ib0 a.b.c.x +    host2$ ip link set dev ib0 up +    host2$ ip address add dev ib0 a.b.c.y      host1$ ping a.b.c.y      host2$ ping a.b.c.x @@ -229,7 +231,8 @@ NFS/RDMA Setup      $ modprobe ib_mthca      $ modprobe ib_ipoib -    $ ifconfig ib0 a.b.c.d +    $ ip li set dev ib0 up +    $ ip addr add dev ib0 a.b.c.d      NOTE: use unique addresses for the client and server diff --git a/Documentation/filesystems/ocfs2.txt b/Documentation/filesystems/ocfs2.txt index 28f8c08201e2..4c49e5410595 100644 --- a/Documentation/filesystems/ocfs2.txt +++ b/Documentation/filesystems/ocfs2.txt @@ -8,8 +8,8 @@ also make it attractive for non-clustered use.  You'll want to install the ocfs2-tools package in order to at least  get "mount.ocfs2" and "ocfs2_hb_ctl". -Project web page:    http://oss.oracle.com/projects/ocfs2 -Tools web page:      http://oss.oracle.com/projects/ocfs2-tools +Project web page:    http://ocfs2.wiki.kernel.org +Tools git tree:      https://github.com/markfasheh/ocfs2-tools  OCFS2 mailing lists: http://oss.oracle.com/projects/ocfs2/mailman/  All code copyright 2005 Oracle except when otherwise noted. 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.  [mandatory]  	f_dentry is gone; use f_path.dentry, or, better yet, see if you can avoid  	it entirely. +-- +[mandatory] +	never call ->read() and ->write() directly; use __vfs_{read,write} or +	wrappers; instead of checking for ->write or ->read being NULL, look for +	FMODE_CAN_{WRITE,READ} in file->f_mode. +-- +[mandatory] +	do _not_ use new_sync_{read,write} for ->read/->write; leave it NULL +	instead. +-- +[mandatory] +	->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  explained in Table 1-4.  (for SMP CONFIG users) -For making accounting scalable, RSS related information are handled in -asynchronous manner and the vaule may not be very precise. To see a precise +For making accounting scalable, RSS related information are handled in an +asynchronous manner and the value may not be very precise. To see a precise  snapshot of a moment, you can see /proc/<pid>/smaps file and scan page table.  It's slow but very precise. -Table 1-2: Contents of the status files (as of 2.6.30-rc7) +Table 1-2: Contents of the status files (as of 3.20.0)  ..............................................................................   Field                       Content   Name                        filename of the executable @@ -213,6 +213,7 @@ Table 1-2: Contents of the status files (as of 2.6.30-rc7)                               in an uninterruptible wait, Z is zombie,  			     T is traced or stopped)   Tgid                        thread group ID + Ngid                        NUMA group ID (0 if none)   Pid                         process id   PPid                        process id of the parent process   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)   Gid                         Real, effective, saved set, and  file system GIDs   FDSize                      number of file descriptor slots currently allocated   Groups                      supplementary group list + NStgid                      descendant namespace thread group ID hierarchy + NSpid                       descendant namespace process ID hierarchy + NSpgid                      descendant namespace process group ID hierarchy + NSsid                       descendant namespace session ID hierarchy   VmPeak                      peak virtual memory size   VmSize                      total program size   VmLck                       locked memory size @@ -1255,9 +1260,9 @@ Various pieces   of  information about  kernel activity  are  available in the  since the system first booted.  For a quick look, simply cat the file:    > cat /proc/stat -  cpu  2255 34 2290 22625563 6290 127 456 0 0 -  cpu0 1132 34 1441 11311718 3675 127 438 0 0 -  cpu1 1123 0 849 11313845 2614 0 18 0 0 +  cpu  2255 34 2290 22625563 6290 127 456 0 0 0 +  cpu0 1132 34 1441 11311718 3675 127 438 0 0 0 +  cpu1 1123 0 849 11313845 2614 0 18 0 0 0    intr 114930548 113199788 3 0 5 263 0 4 [... lots more numbers ...]    ctxt 1990473    btime 1062191376 @@ -1704,6 +1709,10 @@ A typical output is  	flags:	0100002  	mnt_id:	19 +All locks associated with a file descriptor are shown in its fdinfo too. + +lock:       1: FLOCK  ADVISORY  WRITE 359 00:13:11691 0 EOF +  The files such as eventfd, fsnotify, signalfd, epoll among the regular pos/flags  pair provide additional information particular to the objects they represent. 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 {  	void (*invalidatepage) (struct page *, unsigned int, unsigned int);  	int (*releasepage) (struct page *, int);  	void (*freepage)(struct page *); -	ssize_t (*direct_IO)(int, struct kiocb *, struct iov_iter *iter, loff_t offset); +	ssize_t (*direct_IO)(struct kiocb *, struct iov_iter *iter, loff_t offset);  	/* migrate the contents of a page to the specified target */  	int (*migratepage) (struct page *, struct page *);  	int (*launder_page) (struct page *); @@ -804,8 +804,6 @@ struct file_operations {  	loff_t (*llseek) (struct file *, loff_t, int);  	ssize_t (*read) (struct file *, char __user *, size_t, loff_t *);  	ssize_t (*write) (struct file *, const char __user *, size_t, loff_t *); -	ssize_t (*aio_read) (struct kiocb *, const struct iovec *, unsigned long, loff_t); -	ssize_t (*aio_write) (struct kiocb *, const struct iovec *, unsigned long, loff_t);  	ssize_t (*read_iter) (struct kiocb *, struct iov_iter *);  	ssize_t (*write_iter) (struct kiocb *, struct iov_iter *);  	int (*iterate) (struct file *, struct dir_context *); @@ -838,14 +836,10 @@ otherwise noted.    read: called by read(2) and related system calls -  aio_read: vectored, possibly asynchronous read -    read_iter: possibly asynchronous read with iov_iter as destination    write: called by write(2) and related system calls -  aio_write: vectored, possibly asynchronous write -    write_iter: possibly asynchronous write with iov_iter as source    iterate: called when the VFS needs to read the directory contents  |