diff options
| author | Steve French <sfrench@us.ibm.com> | 2006-01-17 22:49:59 -0500 | 
|---|---|---|
| committer | Steve French <sfrench@us.ibm.com> | 2006-01-17 22:49:59 -0500 | 
| commit | d65177c1ae7f085723154105c5dc8d9e16ae8265 (patch) | |
| tree | 14408129d880d89cc5e937f2810f243ed1e6fcde /Documentation/filesystems | |
| parent | d41f084a74de860fe879403fbbad13abdf7aea8e (diff) | |
| parent | 15578eeb6cd4b74492f26e60624aa1a9a52ddd7b (diff) | |
Merge with /pub/scm/linux/kernel/git/torvalds/linux-2.6.git
Signed-off-by: Steve French <sfrench@us.ibm.com>
Diffstat (limited to 'Documentation/filesystems')
| -rw-r--r-- | Documentation/filesystems/fuse.txt | 63 | ||||
| -rw-r--r-- | Documentation/filesystems/tmpfs.txt | 12 | 
2 files changed, 75 insertions, 0 deletions
diff --git a/Documentation/filesystems/fuse.txt b/Documentation/filesystems/fuse.txt index 6b5741e651a2..33f74310d161 100644 --- a/Documentation/filesystems/fuse.txt +++ b/Documentation/filesystems/fuse.txt  | |||
| @@ -86,6 +86,62 @@ Mount options | |||
| 86 | The default is infinite. Note that the size of read requests is | 86 | The default is infinite. Note that the size of read requests is | 
| 87 | limited anyway to 32 pages (which is 128kbyte on i386). | 87 | limited anyway to 32 pages (which is 128kbyte on i386). | 
| 88 | 88 | ||
| 89 | Sysfs | ||
| 90 | ~~~~~ | ||
| 91 | |||
| 92 | FUSE sets up the following hierarchy in sysfs: | ||
| 93 | |||
| 94 | /sys/fs/fuse/connections/N/ | ||
| 95 | |||
| 96 | where N is an increasing number allocated to each new connection. | ||
| 97 | |||
| 98 | For each connection the following attributes are defined: | ||
| 99 | |||
| 100 | 'waiting' | ||
| 101 | |||
| 102 | The number of requests which are waiting to be transfered to | ||
| 103 | userspace or being processed by the filesystem daemon. If there is | ||
| 104 | no filesystem activity and 'waiting' is non-zero, then the | ||
| 105 | filesystem is hung or deadlocked. | ||
| 106 | |||
| 107 | 'abort' | ||
| 108 | |||
| 109 | Writing anything into this file will abort the filesystem | ||
| 110 | connection. This means that all waiting requests will be aborted an | ||
| 111 | error returned for all aborted and new requests. | ||
| 112 | |||
| 113 | Only a privileged user may read or write these attributes. | ||
| 114 | |||
| 115 | Aborting a filesystem connection | ||
| 116 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
| 117 | |||
| 118 | It is possible to get into certain situations where the filesystem is | ||
| 119 | not responding. Reasons for this may be: | ||
| 120 | |||
| 121 | a) Broken userspace filesystem implementation | ||
| 122 | |||
| 123 | b) Network connection down | ||
| 124 | |||
| 125 | c) Accidental deadlock | ||
| 126 | |||
| 127 | d) Malicious deadlock | ||
| 128 | |||
| 129 | (For more on c) and d) see later sections) | ||
| 130 | |||
| 131 | In either of these cases it may be useful to abort the connection to | ||
| 132 | the filesystem. There are several ways to do this: | ||
| 133 | |||
| 134 | - Kill the filesystem daemon. Works in case of a) and b) | ||
| 135 | |||
| 136 | - Kill the filesystem daemon and all users of the filesystem. Works | ||
| 137 | in all cases except some malicious deadlocks | ||
| 138 | |||
| 139 | - Use forced umount (umount -f). Works in all cases but only if | ||
| 140 | filesystem is still attached (it hasn't been lazy unmounted) | ||
| 141 | |||
| 142 | - Abort filesystem through the sysfs interface. Most powerful | ||
| 143 | method, always works. | ||
| 144 | |||
| 89 | How do non-privileged mounts work? | 145 | How do non-privileged mounts work? | 
| 90 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | 146 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | 
| 91 | 147 | ||
| @@ -313,3 +369,10 @@ faulted with get_user_pages(). The 'req->locked' flag indicates | |||
| 313 | when the copy is taking place, and interruption is delayed until | 369 | when the copy is taking place, and interruption is delayed until | 
| 314 | this flag is unset. | 370 | this flag is unset. | 
| 315 | 371 | ||
| 372 | Scenario 3 - Tricky deadlock with asynchronous read | ||
| 373 | --------------------------------------------------- | ||
| 374 | |||
| 375 | The same situation as above, except thread-1 will wait on page lock | ||
| 376 | and hence it will be uninterruptible as well. The solution is to | ||
| 377 | abort the connection with forced umount (if mount is attached) or | ||
| 378 | through the abort attribute in sysfs. | ||
diff --git a/Documentation/filesystems/tmpfs.txt b/Documentation/filesystems/tmpfs.txt index 0d783c504ead..dbe4d87d2615 100644 --- a/Documentation/filesystems/tmpfs.txt +++ b/Documentation/filesystems/tmpfs.txt  | |||
| @@ -78,6 +78,18 @@ use up all the memory on the machine; but enhances the scalability of | |||
| 78 | that instance in a system with many cpus making intensive use of it. | 78 | that instance in a system with many cpus making intensive use of it. | 
| 79 | 79 | ||
| 80 | 80 | ||
| 81 | tmpfs has a mount option to set the NUMA memory allocation policy for | ||
| 82 | all files in that instance: | ||
| 83 | mpol=interleave prefers to allocate memory from each node in turn | ||
| 84 | mpol=default prefers to allocate memory from the local node | ||
| 85 | mpol=bind prefers to allocate from mpol_nodelist | ||
| 86 | mpol=preferred prefers to allocate from first node in mpol_nodelist | ||
| 87 | |||
| 88 | The following mount option is used in conjunction with mpol=interleave, | ||
| 89 | mpol=bind or mpol=preferred: | ||
| 90 | mpol_nodelist: nodelist suitable for parsing with nodelist_parse. | ||
| 91 | |||
| 92 | |||
| 81 | To specify the initial root directory you can use the following mount | 93 | To specify the initial root directory you can use the following mount | 
| 82 | options: | 94 | options: | 
| 83 | 95 | ||
