diff options
author | James Morris <james.l.morris@oracle.com> | 2014-11-19 05:32:12 -0500 |
---|---|---|
committer | James Morris <james.l.morris@oracle.com> | 2014-11-19 05:32:12 -0500 |
commit | b10778a00d40b3d9fdaaf5891e802794781ff71c (patch) | |
tree | 6ba4cbac86eecedc3f30650e7f764ecf00c83898 /Documentation/filesystems | |
parent | 594081ee7145cc30a3977cb4e218f81213b63dc5 (diff) | |
parent | bfe01a5ba2490f299e1d2d5508cbbbadd897bbe9 (diff) |
Merge commit 'v3.17' into next
Diffstat (limited to 'Documentation/filesystems')
-rw-r--r-- | Documentation/filesystems/Locking | 6 | ||||
-rw-r--r-- | Documentation/filesystems/caching/operations.txt | 2 | ||||
-rw-r--r-- | Documentation/filesystems/cifs/AUTHORS | 1 | ||||
-rw-r--r-- | Documentation/filesystems/cifs/TODO | 97 | ||||
-rw-r--r-- | Documentation/filesystems/f2fs.txt | 5 | ||||
-rw-r--r-- | Documentation/filesystems/nfs/Exporting | 38 | ||||
-rw-r--r-- | Documentation/filesystems/nfs/nfs-rdma.txt | 16 | ||||
-rw-r--r-- | Documentation/filesystems/proc.txt | 19 | ||||
-rw-r--r-- | Documentation/filesystems/seq_file.txt | 33 | ||||
-rw-r--r-- | Documentation/filesystems/vfs.txt | 3 |
10 files changed, 134 insertions, 86 deletions
diff --git a/Documentation/filesystems/Locking b/Documentation/filesystems/Locking index b18dd1779029..f1997e9da61f 100644 --- a/Documentation/filesystems/Locking +++ b/Documentation/filesystems/Locking | |||
@@ -349,7 +349,11 @@ prototypes: | |||
349 | locking rules: | 349 | locking rules: |
350 | inode->i_lock may block | 350 | inode->i_lock may block |
351 | fl_copy_lock: yes no | 351 | fl_copy_lock: yes no |
352 | fl_release_private: maybe no | 352 | fl_release_private: maybe maybe[1] |
353 | |||
354 | [1]: ->fl_release_private for flock or POSIX locks is currently allowed | ||
355 | to block. Leases however can still be freed while the i_lock is held and | ||
356 | so fl_release_private called on a lease should not block. | ||
353 | 357 | ||
354 | ----------------------- lock_manager_operations --------------------------- | 358 | ----------------------- lock_manager_operations --------------------------- |
355 | prototypes: | 359 | prototypes: |
diff --git a/Documentation/filesystems/caching/operations.txt b/Documentation/filesystems/caching/operations.txt index bee2a5f93d60..a1c052cbba35 100644 --- a/Documentation/filesystems/caching/operations.txt +++ b/Documentation/filesystems/caching/operations.txt | |||
@@ -90,7 +90,7 @@ operations: | |||
90 | to be cleared before proceeding: | 90 | to be cleared before proceeding: |
91 | 91 | ||
92 | wait_on_bit(&op->flags, FSCACHE_OP_WAITING, | 92 | wait_on_bit(&op->flags, FSCACHE_OP_WAITING, |
93 | fscache_wait_bit, TASK_UNINTERRUPTIBLE); | 93 | TASK_UNINTERRUPTIBLE); |
94 | 94 | ||
95 | 95 | ||
96 | (2) The operation may be fast asynchronous (FSCACHE_OP_FAST), in which case it | 96 | (2) The operation may be fast asynchronous (FSCACHE_OP_FAST), in which case it |
diff --git a/Documentation/filesystems/cifs/AUTHORS b/Documentation/filesystems/cifs/AUTHORS index ca4a67a0bb1e..c98800df677f 100644 --- a/Documentation/filesystems/cifs/AUTHORS +++ b/Documentation/filesystems/cifs/AUTHORS | |||
@@ -40,6 +40,7 @@ Gunter Kukkukk (testing and suggestions for support of old servers) | |||
40 | Igor Mammedov (DFS support) | 40 | Igor Mammedov (DFS support) |
41 | Jeff Layton (many, many fixes, as well as great work on the cifs Kerberos code) | 41 | Jeff Layton (many, many fixes, as well as great work on the cifs Kerberos code) |
42 | Scott Lovenberg | 42 | Scott Lovenberg |
43 | Pavel Shilovsky (for great work adding SMB2 support, and various SMB3 features) | ||
43 | 44 | ||
44 | Test case and Bug Report contributors | 45 | Test case and Bug Report contributors |
45 | ------------------------------------- | 46 | ------------------------------------- |
diff --git a/Documentation/filesystems/cifs/TODO b/Documentation/filesystems/cifs/TODO index 355abcdcda98..066ffddc3964 100644 --- a/Documentation/filesystems/cifs/TODO +++ b/Documentation/filesystems/cifs/TODO | |||
@@ -1,4 +1,4 @@ | |||
1 | Version 1.53 May 20, 2008 | 1 | Version 2.03 August 1, 2014 |
2 | 2 | ||
3 | A Partial List of Missing Features | 3 | A Partial List of Missing Features |
4 | ================================== | 4 | ================================== |
@@ -7,63 +7,49 @@ Contributions are welcome. There are plenty of opportunities | |||
7 | for visible, important contributions to this module. Here | 7 | for visible, important contributions to this module. Here |
8 | is a partial list of the known problems and missing features: | 8 | is a partial list of the known problems and missing features: |
9 | 9 | ||
10 | a) Support for SecurityDescriptors(Windows/CIFS ACLs) for chmod/chgrp/chown | 10 | a) SMB3 (and SMB3.02) missing optional features: |
11 | so that these operations can be supported to Windows servers | 11 | - RDMA |
12 | - multichannel (started) | ||
13 | - directory leases (improved metadata caching) | ||
14 | - T10 copy offload (copy chunk is only mechanism supported) | ||
15 | - encrypted shares | ||
12 | 16 | ||
13 | b) Mapping POSIX ACLs (and eventually NFSv4 ACLs) to CIFS | 17 | b) improved sparse file support |
14 | SecurityDescriptors | ||
15 | 18 | ||
16 | c) Better pam/winbind integration (e.g. to handle uid mapping | 19 | c) Directory entry caching relies on a 1 second timer, rather than |
17 | better) | ||
18 | |||
19 | d) Cleanup now unneeded SessSetup code in | ||
20 | fs/cifs/connect.c and add back in NTLMSSP code if any servers | ||
21 | need it | ||
22 | |||
23 | e) fix NTLMv2 signing when two mounts with different users to same | ||
24 | server. | ||
25 | |||
26 | f) Directory entry caching relies on a 1 second timer, rather than | ||
27 | using FindNotify or equivalent. - (started) | 20 | using FindNotify or equivalent. - (started) |
28 | 21 | ||
29 | g) quota support (needs minor kernel change since quota calls | 22 | d) quota support (needs minor kernel change since quota calls |
30 | to make it to network filesystems or deviceless filesystems) | 23 | to make it to network filesystems or deviceless filesystems) |
31 | 24 | ||
32 | h) investigate sync behavior (including syncpage) and check | 25 | e) improve support for very old servers (OS/2 and Win9x for example) |
33 | for proper behavior of intr/nointr | ||
34 | |||
35 | i) improve support for very old servers (OS/2 and Win9x for example) | ||
36 | Including support for changing the time remotely (utimes command). | 26 | Including support for changing the time remotely (utimes command). |
37 | 27 | ||
38 | j) hook lower into the sockets api (as NFS/SunRPC does) to avoid the | 28 | f) hook lower into the sockets api (as NFS/SunRPC does) to avoid the |
39 | extra copy in/out of the socket buffers in some cases. | 29 | extra copy in/out of the socket buffers in some cases. |
40 | 30 | ||
41 | k) Better optimize open (and pathbased setfilesize) to reduce the | 31 | g) Better optimize open (and pathbased setfilesize) to reduce the |
42 | oplock breaks coming from windows srv. Piggyback identical file | 32 | oplock breaks coming from windows srv. Piggyback identical file |
43 | opens on top of each other by incrementing reference count rather | 33 | opens on top of each other by incrementing reference count rather |
44 | than resending (helps reduce server resource utilization and avoid | 34 | than resending (helps reduce server resource utilization and avoid |
45 | spurious oplock breaks). | 35 | spurious oplock breaks). |
46 | 36 | ||
47 | l) Improve performance of readpages by sending more than one read | 37 | h) Add support for storing symlink info to Windows servers |
48 | at a time when 8 pages or more are requested. In conjuntion | ||
49 | add support for async_cifs_readpages. | ||
50 | |||
51 | m) Add support for storing symlink info to Windows servers | ||
52 | in the Extended Attribute format their SFU clients would recognize. | 38 | in the Extended Attribute format their SFU clients would recognize. |
53 | 39 | ||
54 | n) Finish fcntl D_NOTIFY support so kde and gnome file list windows | 40 | i) Finish inotify support so kde and gnome file list windows |
55 | will autorefresh (partially complete by Asser). Needs minor kernel | 41 | will autorefresh (partially complete by Asser). Needs minor kernel |
56 | vfs change to support removing D_NOTIFY on a file. | 42 | vfs change to support removing D_NOTIFY on a file. |
57 | 43 | ||
58 | o) Add GUI tool to configure /proc/fs/cifs settings and for display of | 44 | j) Add GUI tool to configure /proc/fs/cifs settings and for display of |
59 | the CIFS statistics (started) | 45 | the CIFS statistics (started) |
60 | 46 | ||
61 | p) implement support for security and trusted categories of xattrs | 47 | k) implement support for security and trusted categories of xattrs |
62 | (requires minor protocol extension) to enable better support for SELINUX | 48 | (requires minor protocol extension) to enable better support for SELINUX |
63 | 49 | ||
64 | q) Implement O_DIRECT flag on open (already supported on mount) | 50 | l) Implement O_DIRECT flag on open (already supported on mount) |
65 | 51 | ||
66 | r) Create UID mapping facility so server UIDs can be mapped on a per | 52 | m) Create UID mapping facility so server UIDs can be mapped on a per |
67 | mount or a per server basis to client UIDs or nobody if no mapping | 53 | mount or a per server basis to client UIDs or nobody if no mapping |
68 | exists. This is helpful when Unix extensions are negotiated to | 54 | exists. This is helpful when Unix extensions are negotiated to |
69 | allow better permission checking when UIDs differ on the server | 55 | allow better permission checking when UIDs differ on the server |
@@ -71,28 +57,29 @@ and client. Add new protocol request to the CIFS protocol | |||
71 | standard for asking the server for the corresponding name of a | 57 | standard for asking the server for the corresponding name of a |
72 | particular uid. | 58 | particular uid. |
73 | 59 | ||
74 | s) Add support for CIFS Unix and also the newer POSIX extensions to the | 60 | n) DOS attrs - returned as pseudo-xattr in Samba format (check VFAT and NTFS for this too) |
75 | server side for Samba 4. | 61 | |
62 | o) mount check for unmatched uids | ||
76 | 63 | ||
77 | t) In support for OS/2 (LANMAN 1.2 and LANMAN2.1 based SMB servers) | 64 | p) Add support for new vfs entry point for fallocate |
78 | need to add ability to set time to server (utimes command) | ||
79 | 65 | ||
80 | u) DOS attrs - returned as pseudo-xattr in Samba format (check VFAT and NTFS for this too) | 66 | q) Add tools to take advantage of cifs/smb3 specific ioctls and features |
67 | such as "CopyChunk" (fast server side file copy) | ||
81 | 68 | ||
82 | v) mount check for unmatched uids | 69 | r) encrypted file support |
83 | 70 | ||
84 | w) Add support for new vfs entry point for fallocate | 71 | s) improved stats gathering, tools (perhaps integration with nfsometer?) |
85 | 72 | ||
86 | x) Fix Samba 3 server to handle Linux kernel aio so dbench with lots of | 73 | t) allow setting more NTFS/SMB3 file attributes remotely (currently limited to compressed |
87 | processes can proceed better in parallel (on the server) | 74 | file attribute via chflags) |
88 | 75 | ||
89 | y) Fix Samba 3 to handle reads/writes over 127K (and remove the cifs mount | 76 | u) mount helper GUI (to simplify the various configuration options on mount) |
90 | restriction of wsize max being 127K) | ||
91 | 77 | ||
92 | KNOWN BUGS (updated April 24, 2007) | 78 | |
79 | KNOWN BUGS | ||
93 | ==================================== | 80 | ==================================== |
94 | See http://bugzilla.samba.org - search on product "CifsVFS" for | 81 | See http://bugzilla.samba.org - search on product "CifsVFS" for |
95 | current bug list. | 82 | current bug list. Also check http://bugzilla.kernel.org (Product = File System, Component = CIFS) |
96 | 83 | ||
97 | 1) existing symbolic links (Windows reparse points) are recognized but | 84 | 1) existing symbolic links (Windows reparse points) are recognized but |
98 | can not be created remotely. They are implemented for Samba and those that | 85 | can not be created remotely. They are implemented for Samba and those that |
@@ -100,30 +87,18 @@ support the CIFS Unix extensions, although earlier versions of Samba | |||
100 | overly restrict the pathnames. | 87 | overly restrict the pathnames. |
101 | 2) follow_link and readdir code does not follow dfs junctions | 88 | 2) follow_link and readdir code does not follow dfs junctions |
102 | but recognizes them | 89 | but recognizes them |
103 | 3) create of new files to FAT partitions on Windows servers can | ||
104 | succeed but still return access denied (appears to be Windows | ||
105 | server not cifs client problem) and has not been reproduced recently. | ||
106 | NTFS partitions do not have this problem. | ||
107 | 4) Unix/POSIX capabilities are reset after reconnection, and affect | ||
108 | a few fields in the tree connection but we do do not know which | ||
109 | superblocks to apply these changes to. We should probably walk | ||
110 | the list of superblocks to set these. Also need to check the | ||
111 | flags on the second mount to the same share, and see if we | ||
112 | can do the same trick that NFS does to remount duplicate shares. | ||
113 | 90 | ||
114 | Misc testing to do | 91 | Misc testing to do |
115 | ================== | 92 | ================== |
116 | 1) check out max path names and max path name components against various server | 93 | 1) check out max path names and max path name components against various server |
117 | types. Try nested symlinks (8 deep). Return max path name in stat -f information | 94 | types. Try nested symlinks (8 deep). Return max path name in stat -f information |
118 | 95 | ||
119 | 2) Modify file portion of ltp so it can run against a mounted network | 96 | 2) Improve xfstest's cifs enablement and adapt xfstests where needed to test |
120 | share and run it against cifs vfs in automated fashion. | 97 | cifs better |
121 | 98 | ||
122 | 3) Additional performance testing and optimization using iozone and similar - | 99 | 3) Additional performance testing and optimization using iozone and similar - |
123 | there are some easy changes that can be done to parallelize sequential writes, | 100 | there are some easy changes that can be done to parallelize sequential writes, |
124 | and when signing is disabled to request larger read sizes (larger than | 101 | and when signing is disabled to request larger read sizes (larger than |
125 | negotiated size) and send larger write sizes to modern servers. | 102 | negotiated size) and send larger write sizes to modern servers. |
126 | 103 | ||
127 | 4) More exhaustively test against less common servers. More testing | 104 | 4) More exhaustively test against less common servers |
128 | against Windows 9x, Windows ME servers. | ||
129 | |||
diff --git a/Documentation/filesystems/f2fs.txt b/Documentation/filesystems/f2fs.txt index 51afba17bbae..a2046a7d0a9d 100644 --- a/Documentation/filesystems/f2fs.txt +++ b/Documentation/filesystems/f2fs.txt | |||
@@ -126,6 +126,11 @@ flush_merge Merge concurrent cache_flush commands as much as possible | |||
126 | to eliminate redundant command issues. If the underlying | 126 | to eliminate redundant command issues. If the underlying |
127 | device handles the cache_flush command relatively slowly, | 127 | device handles the cache_flush command relatively slowly, |
128 | recommend to enable this option. | 128 | recommend to enable this option. |
129 | nobarrier This option can be used if underlying storage guarantees | ||
130 | its cached data should be written to the novolatile area. | ||
131 | If this option is set, no cache_flush commands are issued | ||
132 | but f2fs still guarantees the write ordering of all the | ||
133 | data writes. | ||
129 | 134 | ||
130 | ================================================================================ | 135 | ================================================================================ |
131 | DEBUGFS ENTRIES | 136 | DEBUGFS ENTRIES |
diff --git a/Documentation/filesystems/nfs/Exporting b/Documentation/filesystems/nfs/Exporting index e543b1a619cc..c8f036a9b13f 100644 --- a/Documentation/filesystems/nfs/Exporting +++ b/Documentation/filesystems/nfs/Exporting | |||
@@ -66,23 +66,31 @@ b/ A per-superblock list "s_anon" of dentries which are the roots of | |||
66 | 66 | ||
67 | c/ Helper routines to allocate anonymous dentries, and to help attach | 67 | c/ Helper routines to allocate anonymous dentries, and to help attach |
68 | loose directory dentries at lookup time. They are: | 68 | loose directory dentries at lookup time. They are: |
69 | d_alloc_anon(inode) will return a dentry for the given inode. | 69 | d_obtain_alias(inode) will return a dentry for the given inode. |
70 | If the inode already has a dentry, one of those is returned. | 70 | If the inode already has a dentry, one of those is returned. |
71 | If it doesn't, a new anonymous (IS_ROOT and | 71 | If it doesn't, a new anonymous (IS_ROOT and |
72 | DCACHE_DISCONNECTED) dentry is allocated and attached. | 72 | DCACHE_DISCONNECTED) dentry is allocated and attached. |
73 | In the case of a directory, care is taken that only one dentry | 73 | In the case of a directory, care is taken that only one dentry |
74 | can ever be attached. | 74 | can ever be attached. |
75 | d_splice_alias(inode, dentry) will make sure that there is a | 75 | d_splice_alias(inode, dentry) or d_materialise_unique(dentry, inode) |
76 | dentry with the same name and parent as the given dentry, and | 76 | will introduce a new dentry into the tree; either the passed-in |
77 | which refers to the given inode. | 77 | dentry or a preexisting alias for the given inode (such as an |
78 | If the inode is a directory and already has a dentry, then that | 78 | anonymous one created by d_obtain_alias), if appropriate. The two |
79 | dentry is d_moved over the given dentry. | 79 | functions differ in their handling of directories with preexisting |
80 | If the passed dentry gets attached, care is taken that this is | 80 | aliases: |
81 | mutually exclusive to a d_alloc_anon operation. | 81 | d_splice_alias will use any existing IS_ROOT dentry, but it will |
82 | If the passed dentry is used, NULL is returned, else the used | 82 | return -EIO rather than try to move a dentry with a different |
83 | dentry is returned. This corresponds to the calling pattern of | 83 | parent. This is appropriate for local filesystems, which |
84 | ->lookup. | 84 | should never see such an alias unless the filesystem is |
85 | 85 | corrupted somehow (for example, if two on-disk directory | |
86 | entries refer to the same directory.) | ||
87 | d_materialise_unique will attempt to move any dentry. This is | ||
88 | appropriate for distributed filesystems, where finding a | ||
89 | directory other than where we last cached it may be a normal | ||
90 | consequence of concurrent operations on other hosts. | ||
91 | Both functions return NULL when the passed-in dentry is used, | ||
92 | following the calling convention of ->lookup. | ||
93 | |||
86 | 94 | ||
87 | Filesystem Issues | 95 | Filesystem Issues |
88 | ----------------- | 96 | ----------------- |
@@ -120,12 +128,12 @@ struct which has the following members: | |||
120 | 128 | ||
121 | fh_to_dentry (mandatory) | 129 | fh_to_dentry (mandatory) |
122 | Given a filehandle fragment, this should find the implied object and | 130 | Given a filehandle fragment, this should find the implied object and |
123 | create a dentry for it (possibly with d_alloc_anon). | 131 | create a dentry for it (possibly with d_obtain_alias). |
124 | 132 | ||
125 | fh_to_parent (optional but strongly recommended) | 133 | fh_to_parent (optional but strongly recommended) |
126 | Given a filehandle fragment, this should find the parent of the | 134 | Given a filehandle fragment, this should find the parent of the |
127 | implied object and create a dentry for it (possibly with d_alloc_anon). | 135 | implied object and create a dentry for it (possibly with |
128 | May fail if the filehandle fragment is too small. | 136 | d_obtain_alias). May fail if the filehandle fragment is too small. |
129 | 137 | ||
130 | get_parent (optional but strongly recommended) | 138 | get_parent (optional but strongly recommended) |
131 | When given a dentry for a directory, this should return a dentry for | 139 | When given a dentry for a directory, this should return a dentry for |
diff --git a/Documentation/filesystems/nfs/nfs-rdma.txt b/Documentation/filesystems/nfs/nfs-rdma.txt index e386f7e4bcee..724043858b08 100644 --- a/Documentation/filesystems/nfs/nfs-rdma.txt +++ b/Documentation/filesystems/nfs/nfs-rdma.txt | |||
@@ -138,9 +138,9 @@ Installation | |||
138 | - Build, install, reboot | 138 | - Build, install, reboot |
139 | 139 | ||
140 | The NFS/RDMA code will be enabled automatically if NFS and RDMA | 140 | The NFS/RDMA code will be enabled automatically if NFS and RDMA |
141 | are turned on. The NFS/RDMA client and server are configured via the hidden | 141 | are turned on. The NFS/RDMA client and server are configured via the |
142 | SUNRPC_XPRT_RDMA config option that depends on SUNRPC and INFINIBAND. The | 142 | SUNRPC_XPRT_RDMA_CLIENT and SUNRPC_XPRT_RDMA_SERVER config options that both |
143 | value of SUNRPC_XPRT_RDMA will be: | 143 | depend on SUNRPC and INFINIBAND. The default value of both options will be: |
144 | 144 | ||
145 | - N if either SUNRPC or INFINIBAND are N, in this case the NFS/RDMA client | 145 | - N if either SUNRPC or INFINIBAND are N, in this case the NFS/RDMA client |
146 | and server will not be built | 146 | and server will not be built |
@@ -235,8 +235,9 @@ NFS/RDMA Setup | |||
235 | 235 | ||
236 | - Start the NFS server | 236 | - Start the NFS server |
237 | 237 | ||
238 | If the NFS/RDMA server was built as a module (CONFIG_SUNRPC_XPRT_RDMA=m in | 238 | If the NFS/RDMA server was built as a module |
239 | kernel config), load the RDMA transport module: | 239 | (CONFIG_SUNRPC_XPRT_RDMA_SERVER=m in kernel config), load the RDMA |
240 | transport module: | ||
240 | 241 | ||
241 | $ modprobe svcrdma | 242 | $ modprobe svcrdma |
242 | 243 | ||
@@ -255,8 +256,9 @@ NFS/RDMA Setup | |||
255 | 256 | ||
256 | - On the client system | 257 | - On the client system |
257 | 258 | ||
258 | If the NFS/RDMA client was built as a module (CONFIG_SUNRPC_XPRT_RDMA=m in | 259 | If the NFS/RDMA client was built as a module |
259 | kernel config), load the RDMA client module: | 260 | (CONFIG_SUNRPC_XPRT_RDMA_CLIENT=m in kernel config), load the RDMA client |
261 | module: | ||
260 | 262 | ||
261 | $ modprobe xprtrdma.ko | 263 | $ modprobe xprtrdma.ko |
262 | 264 | ||
diff --git a/Documentation/filesystems/proc.txt b/Documentation/filesystems/proc.txt index ddc531a74d04..eb8a10e22f7c 100644 --- a/Documentation/filesystems/proc.txt +++ b/Documentation/filesystems/proc.txt | |||
@@ -1743,6 +1743,25 @@ pair provide additional information particular to the objects they represent. | |||
1743 | While the first three lines are mandatory and always printed, the rest is | 1743 | While the first three lines are mandatory and always printed, the rest is |
1744 | optional and may be omitted if no marks created yet. | 1744 | optional and may be omitted if no marks created yet. |
1745 | 1745 | ||
1746 | Timerfd files | ||
1747 | ~~~~~~~~~~~~~ | ||
1748 | |||
1749 | pos: 0 | ||
1750 | flags: 02 | ||
1751 | mnt_id: 9 | ||
1752 | clockid: 0 | ||
1753 | ticks: 0 | ||
1754 | settime flags: 01 | ||
1755 | it_value: (0, 49406829) | ||
1756 | it_interval: (1, 0) | ||
1757 | |||
1758 | where 'clockid' is the clock type and 'ticks' is the number of the timer expirations | ||
1759 | that have occurred [see timerfd_create(2) for details]. 'settime flags' are | ||
1760 | flags in octal form been used to setup the timer [see timerfd_settime(2) for | ||
1761 | details]. 'it_value' is remaining time until the timer exiration. | ||
1762 | 'it_interval' is the interval for the timer. Note the timer might be set up | ||
1763 | with TIMER_ABSTIME option which will be shown in 'settime flags', but 'it_value' | ||
1764 | still exhibits timer's remaining time. | ||
1746 | 1765 | ||
1747 | ------------------------------------------------------------------------------ | 1766 | ------------------------------------------------------------------------------ |
1748 | Configuring procfs | 1767 | Configuring procfs |
diff --git a/Documentation/filesystems/seq_file.txt b/Documentation/filesystems/seq_file.txt index 1fe0ccb1af55..8ea3e90ace07 100644 --- a/Documentation/filesystems/seq_file.txt +++ b/Documentation/filesystems/seq_file.txt | |||
@@ -235,6 +235,39 @@ be used for more than one file, you can store an arbitrary pointer in the | |||
235 | private field of the seq_file structure; that value can then be retrieved | 235 | private field of the seq_file structure; that value can then be retrieved |
236 | by the iterator functions. | 236 | by the iterator functions. |
237 | 237 | ||
238 | There is also a wrapper function to seq_open() called seq_open_private(). It | ||
239 | kmallocs a zero filled block of memory and stores a pointer to it in the | ||
240 | private field of the seq_file structure, returning 0 on success. The | ||
241 | block size is specified in a third parameter to the function, e.g.: | ||
242 | |||
243 | static int ct_open(struct inode *inode, struct file *file) | ||
244 | { | ||
245 | return seq_open_private(file, &ct_seq_ops, | ||
246 | sizeof(struct mystruct)); | ||
247 | } | ||
248 | |||
249 | There is also a variant function, __seq_open_private(), which is functionally | ||
250 | identical except that, if successful, it returns the pointer to the allocated | ||
251 | memory block, allowing further initialisation e.g.: | ||
252 | |||
253 | static int ct_open(struct inode *inode, struct file *file) | ||
254 | { | ||
255 | struct mystruct *p = | ||
256 | __seq_open_private(file, &ct_seq_ops, sizeof(*p)); | ||
257 | |||
258 | if (!p) | ||
259 | return -ENOMEM; | ||
260 | |||
261 | p->foo = bar; /* initialize my stuff */ | ||
262 | ... | ||
263 | p->baz = true; | ||
264 | |||
265 | return 0; | ||
266 | } | ||
267 | |||
268 | A corresponding close function, seq_release_private() is available which | ||
269 | frees the memory allocated in the corresponding open. | ||
270 | |||
238 | The other operations of interest - read(), llseek(), and release() - are | 271 | The other operations of interest - read(), llseek(), and release() - are |
239 | all implemented by the seq_file code itself. So a virtual file's | 272 | all implemented by the seq_file code itself. So a virtual file's |
240 | file_operations structure will look like: | 273 | file_operations structure will look like: |
diff --git a/Documentation/filesystems/vfs.txt b/Documentation/filesystems/vfs.txt index a1d0d7a30165..61d65cc65c54 100644 --- a/Documentation/filesystems/vfs.txt +++ b/Documentation/filesystems/vfs.txt | |||
@@ -1053,7 +1053,8 @@ struct dentry_operations { | |||
1053 | If the 'rcu_walk' parameter is true, then the caller is doing a | 1053 | If the 'rcu_walk' parameter is true, then the caller is doing a |
1054 | pathwalk in RCU-walk mode. Sleeping is not permitted in this mode, | 1054 | pathwalk in RCU-walk mode. Sleeping is not permitted in this mode, |
1055 | and the caller can be asked to leave it and call again by returning | 1055 | and the caller can be asked to leave it and call again by returning |
1056 | -ECHILD. | 1056 | -ECHILD. -EISDIR may also be returned to tell pathwalk to |
1057 | ignore d_automount or any mounts. | ||
1057 | 1058 | ||
1058 | This function is only used if DCACHE_MANAGE_TRANSIT is set on the | 1059 | This function is only used if DCACHE_MANAGE_TRANSIT is set on the |
1059 | dentry being transited from. | 1060 | dentry being transited from. |