aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/filesystems
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/filesystems')
-rw-r--r--Documentation/filesystems/Locking34
-rw-r--r--Documentation/filesystems/befs.txt2
-rw-r--r--Documentation/filesystems/debugfs.txt4
-rw-r--r--Documentation/filesystems/ext3.txt13
-rw-r--r--Documentation/filesystems/ext4.txt23
-rw-r--r--Documentation/filesystems/nfs/Exporting9
-rw-r--r--Documentation/filesystems/nfs/nfs41-server.txt33
-rw-r--r--Documentation/filesystems/nfs/nfsroot.txt2
-rw-r--r--Documentation/filesystems/porting28
-rw-r--r--Documentation/filesystems/squashfs.txt4
-rw-r--r--Documentation/filesystems/ubifs.txt28
-rw-r--r--Documentation/filesystems/vfs.txt30
12 files changed, 101 insertions, 109 deletions
diff --git a/Documentation/filesystems/Locking b/Documentation/filesystems/Locking
index 57d827d6071..653380793a6 100644
--- a/Documentation/filesystems/Locking
+++ b/Documentation/filesystems/Locking
@@ -52,7 +52,7 @@ ata *);
52 void (*put_link) (struct dentry *, struct nameidata *, void *); 52 void (*put_link) (struct dentry *, struct nameidata *, void *);
53 void (*truncate) (struct inode *); 53 void (*truncate) (struct inode *);
54 int (*permission) (struct inode *, int, unsigned int); 54 int (*permission) (struct inode *, int, unsigned int);
55 int (*check_acl)(struct inode *, int, unsigned int); 55 int (*get_acl)(struct inode *, int);
56 int (*setattr) (struct dentry *, struct iattr *); 56 int (*setattr) (struct dentry *, struct iattr *);
57 int (*getattr) (struct vfsmount *, struct dentry *, struct kstat *); 57 int (*getattr) (struct vfsmount *, struct dentry *, struct kstat *);
58 int (*setxattr) (struct dentry *, const char *,const void *,size_t,int); 58 int (*setxattr) (struct dentry *, const char *,const void *,size_t,int);
@@ -80,7 +80,7 @@ put_link: no
80truncate: yes (see below) 80truncate: yes (see below)
81setattr: yes 81setattr: yes
82permission: no (may not block if called in rcu-walk mode) 82permission: no (may not block if called in rcu-walk mode)
83check_acl: no 83get_acl: no
84getattr: no 84getattr: no
85setxattr: yes 85setxattr: yes
86getxattr: no 86getxattr: no
@@ -338,21 +338,21 @@ fl_release_private: maybe no
338 338
339----------------------- lock_manager_operations --------------------------- 339----------------------- lock_manager_operations ---------------------------
340prototypes: 340prototypes:
341 int (*fl_compare_owner)(struct file_lock *, struct file_lock *); 341 int (*lm_compare_owner)(struct file_lock *, struct file_lock *);
342 void (*fl_notify)(struct file_lock *); /* unblock callback */ 342 void (*lm_notify)(struct file_lock *); /* unblock callback */
343 int (*fl_grant)(struct file_lock *, struct file_lock *, int); 343 int (*lm_grant)(struct file_lock *, struct file_lock *, int);
344 void (*fl_release_private)(struct file_lock *); 344 void (*lm_release_private)(struct file_lock *);
345 void (*fl_break)(struct file_lock *); /* break_lease callback */ 345 void (*lm_break)(struct file_lock *); /* break_lease callback */
346 int (*fl_change)(struct file_lock **, int); 346 int (*lm_change)(struct file_lock **, int);
347 347
348locking rules: 348locking rules:
349 file_lock_lock may block 349 file_lock_lock may block
350fl_compare_owner: yes no 350lm_compare_owner: yes no
351fl_notify: yes no 351lm_notify: yes no
352fl_grant: no no 352lm_grant: no no
353fl_release_private: maybe no 353lm_release_private: maybe no
354fl_break: yes no 354lm_break: yes no
355fl_change yes no 355lm_change yes no
356 356
357--------------------------- buffer_head ----------------------------------- 357--------------------------- buffer_head -----------------------------------
358prototypes: 358prototypes:
@@ -412,7 +412,7 @@ prototypes:
412 int (*open) (struct inode *, struct file *); 412 int (*open) (struct inode *, struct file *);
413 int (*flush) (struct file *); 413 int (*flush) (struct file *);
414 int (*release) (struct inode *, struct file *); 414 int (*release) (struct inode *, struct file *);
415 int (*fsync) (struct file *, int datasync); 415 int (*fsync) (struct file *, loff_t start, loff_t end, int datasync);
416 int (*aio_fsync) (struct kiocb *, int datasync); 416 int (*aio_fsync) (struct kiocb *, int datasync);
417 int (*fasync) (int, struct file *, int); 417 int (*fasync) (int, struct file *, int);
418 int (*lock) (struct file *, int, struct file_lock *); 418 int (*lock) (struct file *, int, struct file_lock *);
@@ -438,9 +438,7 @@ prototypes:
438 438
439locking rules: 439locking rules:
440 All may block except for ->setlease. 440 All may block except for ->setlease.
441 No VFS locks held on entry except for ->fsync and ->setlease. 441 No VFS locks held on entry except for ->setlease.
442
443->fsync() has i_mutex on inode.
444 442
445->setlease has the file_list_lock held and must not sleep. 443->setlease has the file_list_lock held and must not sleep.
446 444
diff --git a/Documentation/filesystems/befs.txt b/Documentation/filesystems/befs.txt
index 6e49c363938..da45e6c842b 100644
--- a/Documentation/filesystems/befs.txt
+++ b/Documentation/filesystems/befs.txt
@@ -27,7 +27,7 @@ His original code can still be found at:
27Does anyone know of a more current email address for Makoto? He doesn't 27Does anyone know of a more current email address for Makoto? He doesn't
28respond to the address given above... 28respond to the address given above...
29 29
30Current maintainer: Sergey S. Kostyliov <rathamahata@php4.ru> 30This filesystem doesn't have a maintainer.
31 31
32WHAT IS THIS DRIVER? 32WHAT IS THIS DRIVER?
33================== 33==================
diff --git a/Documentation/filesystems/debugfs.txt b/Documentation/filesystems/debugfs.txt
index ed52af60c2d..742cc06e138 100644
--- a/Documentation/filesystems/debugfs.txt
+++ b/Documentation/filesystems/debugfs.txt
@@ -73,8 +73,8 @@ the following functions can be used instead:
73 struct dentry *parent, u16 *value); 73 struct dentry *parent, u16 *value);
74 struct dentry *debugfs_create_x32(const char *name, mode_t mode, 74 struct dentry *debugfs_create_x32(const char *name, mode_t mode,
75 struct dentry *parent, u32 *value); 75 struct dentry *parent, u32 *value);
76 76 struct dentry *debugfs_create_x64(const char *name, mode_t mode,
77Note that there is no debugfs_create_x64(). 77 struct dentry *parent, u64 *value);
78 78
79These functions are useful as long as the developer knows the size of the 79These functions are useful as long as the developer knows the size of the
80value to be exported. Some types can have different widths on different 80value to be exported. Some types can have different widths on different
diff --git a/Documentation/filesystems/ext3.txt b/Documentation/filesystems/ext3.txt
index 272f80d5f96..22f3a0eda1d 100644
--- a/Documentation/filesystems/ext3.txt
+++ b/Documentation/filesystems/ext3.txt
@@ -147,15 +147,6 @@ grpjquota=<file> during journal replay. They replace the above
147 package for more details 147 package for more details
148 (http://sourceforge.net/projects/linuxquota). 148 (http://sourceforge.net/projects/linuxquota).
149 149
150bh (*) ext3 associates buffer heads to data pages to
151nobh (a) cache disk block mapping information
152 (b) link pages into transaction to provide
153 ordering guarantees.
154 "bh" option forces use of buffer heads.
155 "nobh" option tries to avoid associating buffer
156 heads (supported only for "writeback" mode).
157
158
159Specification 150Specification
160============= 151=============
161Ext3 shares all disk implementation with the ext2 filesystem, and adds 152Ext3 shares all disk implementation with the ext2 filesystem, and adds
@@ -227,5 +218,5 @@ kernel source: <file:fs/ext3/>
227programs: http://e2fsprogs.sourceforge.net/ 218programs: http://e2fsprogs.sourceforge.net/
228 http://ext2resize.sourceforge.net 219 http://ext2resize.sourceforge.net
229 220
230useful links: http://www.ibm.com/developerworks/library/l-fs7.html 221useful links: http://www.ibm.com/developerworks/library/l-fs7/index.html
231 http://www.ibm.com/developerworks/library/l-fs8.html 222 http://www.ibm.com/developerworks/library/l-fs8/index.html
diff --git a/Documentation/filesystems/ext4.txt b/Documentation/filesystems/ext4.txt
index 3ae9bc94352..232a575a0c4 100644
--- a/Documentation/filesystems/ext4.txt
+++ b/Documentation/filesystems/ext4.txt
@@ -68,12 +68,12 @@ Note: More extensive information for getting started with ext4 can be
68 '-o barriers=[0|1]' mount option for both ext3 and ext4 filesystems 68 '-o barriers=[0|1]' mount option for both ext3 and ext4 filesystems
69 for a fair comparison. When tuning ext3 for best benchmark numbers, 69 for a fair comparison. When tuning ext3 for best benchmark numbers,
70 it is often worthwhile to try changing the data journaling mode; '-o 70 it is often worthwhile to try changing the data journaling mode; '-o
71 data=writeback,nobh' can be faster for some workloads. (Note 71 data=writeback' can be faster for some workloads. (Note however that
72 however that running mounted with data=writeback can potentially 72 running mounted with data=writeback can potentially leave stale data
73 leave stale data exposed in recently written files in case of an 73 exposed in recently written files in case of an unclean shutdown,
74 unclean shutdown, which could be a security exposure in some 74 which could be a security exposure in some situations.) Configuring
75 situations.) Configuring the filesystem with a large journal can 75 the filesystem with a large journal can also be helpful for
76 also be helpful for metadata-intensive workloads. 76 metadata-intensive workloads.
77 77
782. Features 782. Features
79=========== 79===========
@@ -272,14 +272,6 @@ grpjquota=<file> during journal replay. They replace the above
272 package for more details 272 package for more details
273 (http://sourceforge.net/projects/linuxquota). 273 (http://sourceforge.net/projects/linuxquota).
274 274
275bh (*) ext4 associates buffer heads to data pages to
276nobh (a) cache disk block mapping information
277 (b) link pages into transaction to provide
278 ordering guarantees.
279 "bh" option forces use of buffer heads.
280 "nobh" option tries to avoid associating buffer
281 heads (supported only for "writeback" mode).
282
283stripe=n Number of filesystem blocks that mballoc will try 275stripe=n Number of filesystem blocks that mballoc will try
284 to use for allocation size and alignment. For RAID5/6 276 to use for allocation size and alignment. For RAID5/6
285 systems this should be the number of data 277 systems this should be the number of data
@@ -393,8 +385,7 @@ dioread_nolock locking. If the dioread_nolock option is specified
393 write and convert the extent to initialized after IO 385 write and convert the extent to initialized after IO
394 completes. This approach allows ext4 code to avoid 386 completes. This approach allows ext4 code to avoid
395 using inode mutex, which improves scalability on high 387 using inode mutex, which improves scalability on high
396 speed storages. However this does not work with nobh 388 speed storages. However this does not work with
397 option and the mount will fail. Nor does it work with
398 data journaling and dioread_nolock option will be 389 data journaling and dioread_nolock option will be
399 ignored with kernel warning. Note that dioread_nolock 390 ignored with kernel warning. Note that dioread_nolock
400 code path is only used for extent-based files. 391 code path is only used for extent-based files.
diff --git a/Documentation/filesystems/nfs/Exporting b/Documentation/filesystems/nfs/Exporting
index 87019d2b598..09994c24728 100644
--- a/Documentation/filesystems/nfs/Exporting
+++ b/Documentation/filesystems/nfs/Exporting
@@ -92,7 +92,14 @@ For a filesystem to be exportable it must:
92 1/ provide the filehandle fragment routines described below. 92 1/ provide the filehandle fragment routines described below.
93 2/ make sure that d_splice_alias is used rather than d_add 93 2/ make sure that d_splice_alias is used rather than d_add
94 when ->lookup finds an inode for a given parent and name. 94 when ->lookup finds an inode for a given parent and name.
95 Typically the ->lookup routine will end with a: 95
96 If inode is NULL, d_splice_alias(inode, dentry) is eqivalent to
97
98 d_add(dentry, inode), NULL
99
100 Similarly, d_splice_alias(ERR_PTR(err), dentry) = ERR_PTR(err)
101
102 Typically the ->lookup routine will simply end with a:
96 103
97 return d_splice_alias(inode, dentry); 104 return d_splice_alias(inode, dentry);
98 } 105 }
diff --git a/Documentation/filesystems/nfs/nfs41-server.txt b/Documentation/filesystems/nfs/nfs41-server.txt
index 04884914a1c..092fad92a3f 100644
--- a/Documentation/filesystems/nfs/nfs41-server.txt
+++ b/Documentation/filesystems/nfs/nfs41-server.txt
@@ -39,27 +39,17 @@ interoperability problems with future clients. Known issues:
39 from a linux client are possible, but we aren't really 39 from a linux client are possible, but we aren't really
40 conformant with the spec (for example, we don't use kerberos 40 conformant with the spec (for example, we don't use kerberos
41 on the backchannel correctly). 41 on the backchannel correctly).
42 - no trunking support: no clients currently take advantage of
43 trunking, but this is a mandatory feature, and its use is
44 recommended to clients in a number of places. (E.g. to ensure
45 timely renewal in case an existing connection's retry timeouts
46 have gotten too long; see section 8.3 of the RFC.)
47 Therefore, lack of this feature may cause future clients to
48 fail.
49 - Incomplete backchannel support: incomplete backchannel gss 42 - Incomplete backchannel support: incomplete backchannel gss
50 support and no support for BACKCHANNEL_CTL mean that 43 support and no support for BACKCHANNEL_CTL mean that
51 callbacks (hence delegations and layouts) may not be 44 callbacks (hence delegations and layouts) may not be
52 available and clients confused by the incomplete 45 available and clients confused by the incomplete
53 implementation may fail. 46 implementation may fail.
54 - Server reboot recovery is unsupported; if the server reboots,
55 clients may fail.
56 - We do not support SSV, which provides security for shared 47 - We do not support SSV, which provides security for shared
57 client-server state (thus preventing unauthorized tampering 48 client-server state (thus preventing unauthorized tampering
58 with locks and opens, for example). It is mandatory for 49 with locks and opens, for example). It is mandatory for
59 servers to support this, though no clients use it yet. 50 servers to support this, though no clients use it yet.
60 - Mandatory operations which we do not support, such as 51 - Mandatory operations which we do not support, such as
61 DESTROY_CLIENTID, FREE_STATEID, SECINFO_NO_NAME, and 52 DESTROY_CLIENTID, are not currently used by clients, but will be
62 TEST_STATEID, are not currently used by clients, but will be
63 (and the spec recommends their uses in common cases), and 53 (and the spec recommends their uses in common cases), and
64 clients should not be expected to know how to recover from the 54 clients should not be expected to know how to recover from the
65 case where they are not supported. This will eventually cause 55 case where they are not supported. This will eventually cause
@@ -69,8 +59,9 @@ In addition, some limitations are inherited from the current NFSv4
69implementation: 59implementation:
70 60
71 - Incomplete delegation enforcement: if a file is renamed or 61 - Incomplete delegation enforcement: if a file is renamed or
72 unlinked, a client holding a delegation may continue to 62 unlinked by a local process, a client holding a delegation may
73 indefinitely allow opens of the file under the old name. 63 continue to indefinitely allow opens of the file under the old
64 name.
74 65
75The table below, taken from the NFSv4.1 document, lists 66The table below, taken from the NFSv4.1 document, lists
76the operations that are mandatory to implement (REQ), optional 67the operations that are mandatory to implement (REQ), optional
@@ -99,7 +90,7 @@ Operations
99 +----------------------+------------+--------------+----------------+ 90 +----------------------+------------+--------------+----------------+
100 | ACCESS | REQ | | Section 18.1 | 91 | ACCESS | REQ | | Section 18.1 |
101NS | BACKCHANNEL_CTL | REQ | | Section 18.33 | 92NS | BACKCHANNEL_CTL | REQ | | Section 18.33 |
102NS | BIND_CONN_TO_SESSION | REQ | | Section 18.34 | 93I | BIND_CONN_TO_SESSION | REQ | | Section 18.34 |
103 | CLOSE | REQ | | Section 18.2 | 94 | CLOSE | REQ | | Section 18.2 |
104 | COMMIT | REQ | | Section 18.3 | 95 | COMMIT | REQ | | Section 18.3 |
105 | CREATE | REQ | | Section 18.4 | 96 | CREATE | REQ | | Section 18.4 |
@@ -111,7 +102,7 @@ NS*| DELEGPURGE | OPT | FDELG (REQ) | Section 18.5 |
111NS | DESTROY_CLIENTID | REQ | | Section 18.50 | 102NS | DESTROY_CLIENTID | REQ | | Section 18.50 |
112I | DESTROY_SESSION | REQ | | Section 18.37 | 103I | DESTROY_SESSION | REQ | | Section 18.37 |
113I | EXCHANGE_ID | REQ | | Section 18.35 | 104I | EXCHANGE_ID | REQ | | Section 18.35 |
114NS | FREE_STATEID | REQ | | Section 18.38 | 105I | FREE_STATEID | REQ | | Section 18.38 |
115 | GETATTR | REQ | | Section 18.7 | 106 | GETATTR | REQ | | Section 18.7 |
116P | GETDEVICEINFO | OPT | pNFS (REQ) | Section 18.40 | 107P | GETDEVICEINFO | OPT | pNFS (REQ) | Section 18.40 |
117P | GETDEVICELIST | OPT | pNFS (OPT) | Section 18.41 | 108P | GETDEVICELIST | OPT | pNFS (OPT) | Section 18.41 |
@@ -145,14 +136,14 @@ NS*| OPENATTR | OPT | | Section 18.17 |
145 | RESTOREFH | REQ | | Section 18.27 | 136 | RESTOREFH | REQ | | Section 18.27 |
146 | SAVEFH | REQ | | Section 18.28 | 137 | SAVEFH | REQ | | Section 18.28 |
147 | SECINFO | REQ | | Section 18.29 | 138 | SECINFO | REQ | | Section 18.29 |
148NS | SECINFO_NO_NAME | REC | pNFS files | Section 18.45, | 139I | SECINFO_NO_NAME | REC | pNFS files | Section 18.45, |
149 | | | layout (REQ) | Section 13.12 | 140 | | | layout (REQ) | Section 13.12 |
150I | SEQUENCE | REQ | | Section 18.46 | 141I | SEQUENCE | REQ | | Section 18.46 |
151 | SETATTR | REQ | | Section 18.30 | 142 | SETATTR | REQ | | Section 18.30 |
152 | SETCLIENTID | MNI | | N/A | 143 | SETCLIENTID | MNI | | N/A |
153 | SETCLIENTID_CONFIRM | MNI | | N/A | 144 | SETCLIENTID_CONFIRM | MNI | | N/A |
154NS | SET_SSV | REQ | | Section 18.47 | 145NS | SET_SSV | REQ | | Section 18.47 |
155NS | TEST_STATEID | REQ | | Section 18.48 | 146I | TEST_STATEID | REQ | | Section 18.48 |
156 | VERIFY | REQ | | Section 18.31 | 147 | VERIFY | REQ | | Section 18.31 |
157NS*| WANT_DELEGATION | OPT | FDELG (OPT) | Section 18.49 | 148NS*| WANT_DELEGATION | OPT | FDELG (OPT) | Section 18.49 |
158 | WRITE | REQ | | Section 18.32 | 149 | WRITE | REQ | | Section 18.32 |
@@ -206,12 +197,6 @@ CREATE_SESSION:
206SEQUENCE: 197SEQUENCE:
207* no support for dynamic slot table renegotiation (optional) 198* no support for dynamic slot table renegotiation (optional)
208 199
209nfsv4.1 COMPOUND rules:
210The following cases aren't supported yet:
211* Enforcing of NFS4ERR_NOT_ONLY_OP for: BIND_CONN_TO_SESSION, CREATE_SESSION,
212 DESTROY_CLIENTID, DESTROY_SESSION, EXCHANGE_ID.
213* DESTROY_SESSION MUST be the final operation in the COMPOUND request.
214
215Nonstandard compound limitations: 200Nonstandard compound limitations:
216* No support for a sessions fore channel RPC compound that requires both a 201* No support for a sessions fore channel RPC compound that requires both a
217 ca_maxrequestsize request and a ca_maxresponsesize reply, so we may 202 ca_maxrequestsize request and a ca_maxresponsesize reply, so we may
@@ -219,3 +204,5 @@ Nonstandard compound limitations:
219 negotiation. 204 negotiation.
220* No more than one IO operation (read, write, readdir) allowed per 205* No more than one IO operation (read, write, readdir) allowed per
221 compound. 206 compound.
207
208See also http://wiki.linux-nfs.org/wiki/index.php/Server_4.0_and_4.1_issues.
diff --git a/Documentation/filesystems/nfs/nfsroot.txt b/Documentation/filesystems/nfs/nfsroot.txt
index 90c71c6f0d0..ffdd9d866ad 100644
--- a/Documentation/filesystems/nfs/nfsroot.txt
+++ b/Documentation/filesystems/nfs/nfsroot.txt
@@ -226,7 +226,7 @@ They depend on various facilities being available:
226 cdrecord. 226 cdrecord.
227 227
228 e.g. 228 e.g.
229 cdrecord dev=ATAPI:1,0,0 arch/i386/boot/image.iso 229 cdrecord dev=ATAPI:1,0,0 arch/x86/boot/image.iso
230 230
231 For more information on isolinux, including how to create bootdisks 231 For more information on isolinux, including how to create bootdisks
232 for prebuilt kernels, see http://syslinux.zytor.com/ 232 for prebuilt kernels, see http://syslinux.zytor.com/
diff --git a/Documentation/filesystems/porting b/Documentation/filesystems/porting
index 6e29954851a..b4a3d765ff9 100644
--- a/Documentation/filesystems/porting
+++ b/Documentation/filesystems/porting
@@ -400,10 +400,32 @@ a file off.
400 400
401-- 401--
402[mandatory] 402[mandatory]
403
404--
405[mandatory]
406 ->get_sb() is gone. Switch to use of ->mount(). Typically it's just 403 ->get_sb() is gone. Switch to use of ->mount(). Typically it's just
407a matter of switching from calling get_sb_... to mount_... and changing the 404a matter of switching from calling get_sb_... to mount_... and changing the
408function type. If you were doing it manually, just switch from setting ->mnt_root 405function type. If you were doing it manually, just switch from setting ->mnt_root
409to some pointer to returning that pointer. On errors return ERR_PTR(...). 406to some pointer to returning that pointer. On errors return ERR_PTR(...).
407
408--
409[mandatory]
410 ->permission() and generic_permission()have lost flags
411argument; instead of passing IPERM_FLAG_RCU we add MAY_NOT_BLOCK into mask.
412 generic_permission() has also lost the check_acl argument; ACL checking
413has been taken to VFS and filesystems need to provide a non-NULL ->i_op->get_acl
414to read an ACL from disk.
415
416--
417[mandatory]
418 If you implement your own ->llseek() you must handle SEEK_HOLE and
419SEEK_DATA. You can hanle this by returning -EINVAL, but it would be nicer to
420support it in some way. The generic handler assumes that the entire file is
421data and there is a virtual hole at the end of the file. So if the provided
422offset is less than i_size and SEEK_DATA is specified, return the same offset.
423If the above is true for the offset and you are given SEEK_HOLE, return the end
424of the file. If the offset is i_size or greater return -ENXIO in either case.
425
426[mandatory]
427 If you have your own ->fsync() you must make sure to call
428filemap_write_and_wait_range() so that all dirty pages are synced out properly.
429You must also keep in mind that ->fsync() is not called with i_mutex held
430anymore, so if you require i_mutex locking you must make sure to take it and
431release it yourself.
diff --git a/Documentation/filesystems/squashfs.txt b/Documentation/filesystems/squashfs.txt
index d4d41465a0b..7db3ebda5a4 100644
--- a/Documentation/filesystems/squashfs.txt
+++ b/Documentation/filesystems/squashfs.txt
@@ -2,7 +2,7 @@ SQUASHFS 4.0 FILESYSTEM
2======================= 2=======================
3 3
4Squashfs is a compressed read-only filesystem for Linux. 4Squashfs is a compressed read-only filesystem for Linux.
5It uses zlib/lzo compression to compress files, inodes and directories. 5It uses zlib/lzo/xz compression to compress files, inodes and directories.
6Inodes in the system are very small and all blocks are packed to minimise 6Inodes in the system are very small and all blocks are packed to minimise
7data overhead. Block sizes greater than 4K are supported up to a maximum 7data overhead. Block sizes greater than 4K are supported up to a maximum
8of 1Mbytes (default block size 128K). 8of 1Mbytes (default block size 128K).
@@ -55,6 +55,8 @@ create populated squashfs filesystems. This and other squashfs utilities
55can be obtained from http://www.squashfs.org. Usage instructions can be 55can be obtained from http://www.squashfs.org. Usage instructions can be
56obtained from this site also. 56obtained from this site also.
57 57
58The squashfs-tools development tree is now located on kernel.org
59 git://git.kernel.org/pub/scm/fs/squashfs/squashfs-tools.git
58 60
593. SQUASHFS FILESYSTEM DESIGN 613. SQUASHFS FILESYSTEM DESIGN
60----------------------------- 62-----------------------------
diff --git a/Documentation/filesystems/ubifs.txt b/Documentation/filesystems/ubifs.txt
index 8e4fab639d9..a0a61d2f389 100644
--- a/Documentation/filesystems/ubifs.txt
+++ b/Documentation/filesystems/ubifs.txt
@@ -111,34 +111,6 @@ The following is an example of the kernel boot arguments to attach mtd0
111to UBI and mount volume "rootfs": 111to UBI and mount volume "rootfs":
112ubi.mtd=0 root=ubi0:rootfs rootfstype=ubifs 112ubi.mtd=0 root=ubi0:rootfs rootfstype=ubifs
113 113
114
115Module Parameters for Debugging
116===============================
117
118When UBIFS has been compiled with debugging enabled, there are 2 module
119parameters that are available to control aspects of testing and debugging.
120
121debug_chks Selects extra checks that UBIFS can do while running:
122
123 Check Flag value
124
125 General checks 1
126 Check Tree Node Cache (TNC) 2
127 Check indexing tree size 4
128 Check orphan area 8
129 Check old indexing tree 16
130 Check LEB properties (lprops) 32
131 Check leaf nodes and inodes 64
132
133debug_tsts Selects a mode of testing, as follows:
134
135 Test mode Flag value
136
137 Failure mode for recovery testing 4
138
139For example, set debug_chks to 3 to enable general and TNC checks.
140
141
142References 114References
143========== 115==========
144 116
diff --git a/Documentation/filesystems/vfs.txt b/Documentation/filesystems/vfs.txt
index 88b9f5519af..52d8fb81cff 100644
--- a/Documentation/filesystems/vfs.txt
+++ b/Documentation/filesystems/vfs.txt
@@ -229,6 +229,8 @@ struct super_operations {
229 229
230 ssize_t (*quota_read)(struct super_block *, int, char *, size_t, loff_t); 230 ssize_t (*quota_read)(struct super_block *, int, char *, size_t, loff_t);
231 ssize_t (*quota_write)(struct super_block *, int, const char *, size_t, loff_t); 231 ssize_t (*quota_write)(struct super_block *, int, const char *, size_t, loff_t);
232 int (*nr_cached_objects)(struct super_block *);
233 void (*free_cached_objects)(struct super_block *, int);
232}; 234};
233 235
234All methods are called without any locks being held, unless otherwise 236All methods are called without any locks being held, unless otherwise
@@ -301,6 +303,26 @@ or bottom half).
301 303
302 quota_write: called by the VFS to write to filesystem quota file. 304 quota_write: called by the VFS to write to filesystem quota file.
303 305
306 nr_cached_objects: called by the sb cache shrinking function for the
307 filesystem to return the number of freeable cached objects it contains.
308 Optional.
309
310 free_cache_objects: called by the sb cache shrinking function for the
311 filesystem to scan the number of objects indicated to try to free them.
312 Optional, but any filesystem implementing this method needs to also
313 implement ->nr_cached_objects for it to be called correctly.
314
315 We can't do anything with any errors that the filesystem might
316 encountered, hence the void return type. This will never be called if
317 the VM is trying to reclaim under GFP_NOFS conditions, hence this
318 method does not need to handle that situation itself.
319
320 Implementations must include conditional reschedule calls inside any
321 scanning loop that is done. This allows the VFS to determine
322 appropriate scan batch sizes without having to worry about whether
323 implementations will cause holdoff problems due to large scan batch
324 sizes.
325
304Whoever sets up the inode is responsible for filling in the "i_op" field. This 326Whoever sets up the inode is responsible for filling in the "i_op" field. This
305is a pointer to a "struct inode_operations" which describes the methods that 327is a pointer to a "struct inode_operations" which describes the methods that
306can be performed on individual inodes. 328can be performed on individual inodes.
@@ -333,8 +355,8 @@ struct inode_operations {
333 void * (*follow_link) (struct dentry *, struct nameidata *); 355 void * (*follow_link) (struct dentry *, struct nameidata *);
334 void (*put_link) (struct dentry *, struct nameidata *, void *); 356 void (*put_link) (struct dentry *, struct nameidata *, void *);
335 void (*truncate) (struct inode *); 357 void (*truncate) (struct inode *);
336 int (*permission) (struct inode *, int, unsigned int); 358 int (*permission) (struct inode *, int);
337 int (*check_acl)(struct inode *, int, unsigned int); 359 int (*get_acl)(struct inode *, int);
338 int (*setattr) (struct dentry *, struct iattr *); 360 int (*setattr) (struct dentry *, struct iattr *);
339 int (*getattr) (struct vfsmount *mnt, struct dentry *, struct kstat *); 361 int (*getattr) (struct vfsmount *mnt, struct dentry *, struct kstat *);
340 int (*setxattr) (struct dentry *, const char *,const void *,size_t,int); 362 int (*setxattr) (struct dentry *, const char *,const void *,size_t,int);
@@ -423,7 +445,7 @@ otherwise noted.
423 permission: called by the VFS to check for access rights on a POSIX-like 445 permission: called by the VFS to check for access rights on a POSIX-like
424 filesystem. 446 filesystem.
425 447
426 May be called in rcu-walk mode (flags & IPERM_FLAG_RCU). If in rcu-walk 448 May be called in rcu-walk mode (mask & MAY_NOT_BLOCK). If in rcu-walk
427 mode, the filesystem must check the permission without blocking or 449 mode, the filesystem must check the permission without blocking or
428 storing to the inode. 450 storing to the inode.
429 451
@@ -755,7 +777,7 @@ struct file_operations {
755 int (*open) (struct inode *, struct file *); 777 int (*open) (struct inode *, struct file *);
756 int (*flush) (struct file *); 778 int (*flush) (struct file *);
757 int (*release) (struct inode *, struct file *); 779 int (*release) (struct inode *, struct file *);
758 int (*fsync) (struct file *, int datasync); 780 int (*fsync) (struct file *, loff_t, loff_t, int datasync);
759 int (*aio_fsync) (struct kiocb *, int datasync); 781 int (*aio_fsync) (struct kiocb *, int datasync);
760 int (*fasync) (int, struct file *, int); 782 int (*fasync) (int, struct file *, int);
761 int (*lock) (struct file *, int, struct file_lock *); 783 int (*lock) (struct file *, int, struct file_lock *);