diff options
Diffstat (limited to 'Documentation/filesystems')
| -rw-r--r-- | Documentation/filesystems/debugfs.txt | 2 | ||||
| -rw-r--r-- | Documentation/filesystems/f2fs.txt | 7 | ||||
| -rw-r--r-- | Documentation/filesystems/nfs/Exporting | 23 | ||||
| -rw-r--r-- | Documentation/filesystems/overlayfs.txt | 2 | ||||
| -rw-r--r-- | Documentation/filesystems/porting | 8 | ||||
| -rw-r--r-- | Documentation/filesystems/proc.txt | 2 | ||||
| -rw-r--r-- | Documentation/filesystems/seq_file.txt | 22 | ||||
| -rw-r--r-- | Documentation/filesystems/squashfs.txt | 8 | ||||
| -rw-r--r-- | Documentation/filesystems/vfs.txt | 2 | 
9 files changed, 41 insertions, 35 deletions
diff --git a/Documentation/filesystems/debugfs.txt b/Documentation/filesystems/debugfs.txt index 3a863f692728..88ab81c79109 100644 --- a/Documentation/filesystems/debugfs.txt +++ b/Documentation/filesystems/debugfs.txt @@ -140,7 +140,7 @@ file.  				     struct dentry *parent,  				     struct debugfs_regset32 *regset); -    int debugfs_print_regs32(struct seq_file *s, struct debugfs_reg32 *regs, +    void debugfs_print_regs32(struct seq_file *s, struct debugfs_reg32 *regs,  			 int nregs, void __iomem *base, char *prefix);  The "base" argument may be 0, but you may want to build the reg32 array diff --git a/Documentation/filesystems/f2fs.txt b/Documentation/filesystems/f2fs.txt index 2cca5a25ef89..e0950c483c22 100644 --- a/Documentation/filesystems/f2fs.txt +++ b/Documentation/filesystems/f2fs.txt @@ -122,6 +122,10 @@ disable_ext_identify   Disable the extension list configured by mkfs, so f2fs  inline_xattr           Enable the inline xattrs feature.  inline_data            Enable the inline data feature: New created small(<~3.4k)                         files can be written into inode block. +inline_dentry          Enable the inline dir feature: data in new created +                       directory entries can be written into inode block. The +                       space of inode block which is used to store inline +                       dentries is limited to ~3.4k.  flush_merge	       Merge concurrent cache_flush commands as much as possible                         to eliminate redundant command issues. If the underlying  		       device handles the cache_flush command relatively slowly, @@ -131,6 +135,9 @@ nobarrier              This option can be used if underlying storage guarantees  		       If this option is set, no cache_flush commands are issued  		       but f2fs still guarantees the write ordering of all the  		       data writes. +fastboot               This option is used when a system wants to reduce mount +                       time as much as possible, even though normal performance +		       can be sacrificed.  ================================================================================  DEBUGFS ENTRIES diff --git a/Documentation/filesystems/nfs/Exporting b/Documentation/filesystems/nfs/Exporting index c8f036a9b13f..520a4becb75c 100644 --- a/Documentation/filesystems/nfs/Exporting +++ b/Documentation/filesystems/nfs/Exporting @@ -72,24 +72,11 @@ c/ Helper routines to allocate anonymous dentries, and to help attach          DCACHE_DISCONNECTED) dentry is allocated and attached.        In the case of a directory, care is taken that only one dentry        can ever be attached. -    d_splice_alias(inode, dentry) or d_materialise_unique(dentry, inode) -      will introduce a new dentry into the tree; either the passed-in -      dentry or a preexisting alias for the given inode (such as an -      anonymous one created by d_obtain_alias), if appropriate.  The two -      functions differ in their handling of directories with preexisting -      aliases: -        d_splice_alias will use any existing IS_ROOT dentry, but it will -	  return -EIO rather than try to move a dentry with a different -	  parent.  This is appropriate for local filesystems, which -	  should never see such an alias unless the filesystem is -	  corrupted somehow (for example, if two on-disk directory -	  entries refer to the same directory.) -	d_materialise_unique will attempt to move any dentry.  This is -	  appropriate for distributed filesystems, where finding a -	  directory other than where we last cached it may be a normal -	  consequence of concurrent operations on other hosts. -      Both functions return NULL when the passed-in dentry is used, -      following the calling convention of ->lookup. +    d_splice_alias(inode, dentry) will introduce a new dentry into the tree; +      either the passed-in dentry or a preexisting alias for the given inode +      (such as an anonymous one created by d_obtain_alias), if appropriate. +      It returns NULL when the passed-in dentry is used, following the calling +      convention of ->lookup.  Filesystem Issues diff --git a/Documentation/filesystems/overlayfs.txt b/Documentation/filesystems/overlayfs.txt index 530850a72735..a27c950ece61 100644 --- a/Documentation/filesystems/overlayfs.txt +++ b/Documentation/filesystems/overlayfs.txt @@ -64,7 +64,7 @@ is formed.  At mount time, the two directories given as mount options "lowerdir" and  "upperdir" are combined into a merged directory: -  mount -t overlayfs overlayfs -olowerdir=/lower,upperdir=/upper,\ +  mount -t overlay overlay -olowerdir=/lower,upperdir=/upper,\  workdir=/work /merged  The "workdir" needs to be an empty directory on the same filesystem diff --git a/Documentation/filesystems/porting b/Documentation/filesystems/porting index 0f3a1390bf00..fa2db081505e 100644 --- a/Documentation/filesystems/porting +++ b/Documentation/filesystems/porting @@ -463,3 +463,11 @@ in your dentry operations instead.  	of the in-tree instances did).  inode_hash_lock is still held,  	of course, so they are still serialized wrt removal from inode hash,  	as well as wrt set() callback of iget5_locked(). +-- +[mandatory] +	d_materialise_unique() is gone; d_splice_alias() does everything you +	need now.  Remember that they have opposite orders of arguments ;-/ +-- +[mandatory] +	f_dentry is gone; use f_path.dentry, or, better yet, see if you can avoid +	it entirely. diff --git a/Documentation/filesystems/proc.txt b/Documentation/filesystems/proc.txt index eb8a10e22f7c..aae9dd13c91f 100644 --- a/Documentation/filesystems/proc.txt +++ b/Documentation/filesystems/proc.txt @@ -1272,7 +1272,7 @@ softirq.  1.9 Ext4 file system parameters ------------------------------- +-------------------------------  Information about mounted ext4 file systems can be found in  /proc/fs/ext4.  Each mounted filesystem will have a directory in diff --git a/Documentation/filesystems/seq_file.txt b/Documentation/filesystems/seq_file.txt index 8ea3e90ace07..b797ed38de46 100644 --- a/Documentation/filesystems/seq_file.txt +++ b/Documentation/filesystems/seq_file.txt @@ -180,23 +180,19 @@ output must be passed to the seq_file code. Some utility functions have  been defined which make this task easy.  Most code will simply use seq_printf(), which works pretty much like -printk(), but which requires the seq_file pointer as an argument. It is -common to ignore the return value from seq_printf(), but a function -producing complicated output may want to check that value and quit if -something non-zero is returned; an error return means that the seq_file -buffer has been filled and further output will be discarded. +printk(), but which requires the seq_file pointer as an argument.  For straight character output, the following functions may be used: -	int seq_putc(struct seq_file *m, char c); -	int seq_puts(struct seq_file *m, const char *s); -	int seq_escape(struct seq_file *m, const char *s, const char *esc); +	seq_putc(struct seq_file *m, char c); +	seq_puts(struct seq_file *m, const char *s); +	seq_escape(struct seq_file *m, const char *s, const char *esc);  The first two output a single character and a string, just like one would  expect. seq_escape() is like seq_puts(), except that any character in s  which is in the string esc will be represented in octal form in the output. -There is also a pair of functions for printing filenames: +There are also a pair of functions for printing filenames:  	int seq_path(struct seq_file *m, struct path *path, char *esc);  	int seq_path_root(struct seq_file *m, struct path *path, @@ -209,6 +205,14 @@ root is desired, it can be used with seq_path_root().  Note that, if it  turns out that path cannot be reached from root, the value of root will be  changed in seq_file_root() to a root which *does* work. +A function producing complicated output may want to check +	bool seq_has_overflowed(struct seq_file *m); +and avoid further seq_<output> calls if true is returned. + +A true return from seq_has_overflowed means that the seq_file buffer will +be discarded and the seq_show function will attempt to allocate a larger +buffer and retry printing. +  Making it all work diff --git a/Documentation/filesystems/squashfs.txt b/Documentation/filesystems/squashfs.txt index 403c090aca39..e5274f84dc56 100644 --- a/Documentation/filesystems/squashfs.txt +++ b/Documentation/filesystems/squashfs.txt @@ -2,10 +2,10 @@ SQUASHFS 4.0 FILESYSTEM  =======================  Squashfs is a compressed read-only filesystem for Linux. -It uses zlib/lzo/xz compression to compress files, inodes and directories. -Inodes in the system are very small and all blocks are packed to minimise -data overhead. Block sizes greater than 4K are supported up to a maximum -of 1Mbytes (default block size 128K). +It uses zlib, lz4, lzo, or xz compression to compress files, inodes and +directories.  Inodes in the system are very small and all blocks are packed to +minimise data overhead. Block sizes greater than 4K are supported up to a +maximum of 1Mbytes (default block size 128K).  Squashfs is intended for general read-only filesystem use, for archival  use (i.e. in cases where a .tar.gz file may be used), and in constrained diff --git a/Documentation/filesystems/vfs.txt b/Documentation/filesystems/vfs.txt index 20bf204426ca..43ce0507ee25 100644 --- a/Documentation/filesystems/vfs.txt +++ b/Documentation/filesystems/vfs.txt @@ -835,7 +835,7 @@ struct file_operations {  	ssize_t (*splice_read)(struct file *, struct pipe_inode_info *, size_t, unsigned int);  	int (*setlease)(struct file *, long arg, struct file_lock **, void **);  	long (*fallocate)(struct file *, int mode, loff_t offset, loff_t len); -	int (*show_fdinfo)(struct seq_file *m, struct file *f); +	void (*show_fdinfo)(struct seq_file *m, struct file *f);  };  Again, all methods are called without any locks being held, unless  |