Merge tag 'docs-5.0' of git://git.lwn.net/linux
Pull documentation update from Jonathan Corbet: "A fairly normal cycle for documentation stuff. We have a new document on perf security, more Italian translations, more improvements to the memory-management docs, improvements to the pathname lookup documentation, and the usual array of smaller fixes. As is often the case, there are a few reaches outside of Documentation/ to adjust kerneldoc comments" * tag 'docs-5.0' of git://git.lwn.net/linux: (38 commits) docs: improve pathname-lookup document structure configfs: fix wrong name of struct in documentation docs/mm-api: link slab_common.c to "The Slab Cache" section slab: make kmem_cache_create{_usercopy} description proper kernel-doc doc:process: add links where missing docs/core-api: make mm-api.rst more structured x86, boot: documentation whitespace fixup Documentation: devres: note checking needs when converting doc🇮🇹 add some process/* translations doc🇮🇹 fixes in process/1.Intro Documentation: convert path-lookup from markdown to resturctured text Documentation/admin-guide: update admin-guide index.rst Documentation/admin-guide: introduce perf-security.rst file scripts/kernel-doc: Fix struct and struct field attribute processing Documentation: dev-tools: Fix typos in index.rst Correct gen_init_cpio tool's documentation Document /proc/pid PID reuse behavior Documentation: update path-lookup.md for parallel lookups Documentation: Use "while" instead of "whilst" dmaengine: Add mailing list address to the documentation ...
This commit is contained in:
@@ -704,7 +704,7 @@ FS-Cache provides some utilities that a cache backend may make use of:
|
||||
void fscache_get_retrieval(struct fscache_retrieval *op);
|
||||
void fscache_put_retrieval(struct fscache_retrieval *op);
|
||||
|
||||
These two functions are used to retain a retrieval record whilst doing
|
||||
These two functions are used to retain a retrieval record while doing
|
||||
asynchronous data retrieval and block allocation.
|
||||
|
||||
|
||||
|
@@ -45,7 +45,7 @@ filesystems are very specific in nature.
|
||||
|
||||
CacheFiles creates a misc character device - "/dev/cachefiles" - that is used
|
||||
to communication with the daemon. Only one thing may have this open at once,
|
||||
and whilst it is open, a cache is at least partially in existence. The daemon
|
||||
and while it is open, a cache is at least partially in existence. The daemon
|
||||
opens this and sends commands down it to control the cache.
|
||||
|
||||
CacheFiles is currently limited to a single cache.
|
||||
@@ -163,7 +163,7 @@ Do not mount other things within the cache as this will cause problems. The
|
||||
kernel module contains its own very cut-down path walking facility that ignores
|
||||
mountpoints, but the daemon can't avoid them.
|
||||
|
||||
Do not create, rename or unlink files and directories in the cache whilst the
|
||||
Do not create, rename or unlink files and directories in the cache while the
|
||||
cache is active, as this may cause the state to become uncertain.
|
||||
|
||||
Renaming files in the cache might make objects appear to be other objects (the
|
||||
|
@@ -382,7 +382,7 @@ MISCELLANEOUS OBJECT REGISTRATION
|
||||
An optional step is to request an object of miscellaneous type be created in
|
||||
the cache. This is almost identical to index cookie acquisition. The only
|
||||
difference is that the type in the object definition should be something other
|
||||
than index type. Whilst the parent object could be an index, it's more likely
|
||||
than index type. While the parent object could be an index, it's more likely
|
||||
it would be some other type of object such as a data file.
|
||||
|
||||
xattr->cache =
|
||||
|
@@ -171,7 +171,7 @@ Operations are used through the following procedure:
|
||||
(3) If the submitting thread wants to do the work itself, and has marked the
|
||||
operation with FSCACHE_OP_MYTHREAD, then it should monitor
|
||||
FSCACHE_OP_WAITING as described above and check the state of the object if
|
||||
necessary (the object might have died whilst the thread was waiting).
|
||||
necessary (the object might have died while the thread was waiting).
|
||||
|
||||
When it has finished doing its processing, it should call
|
||||
fscache_op_complete() and fscache_put_operation() on it.
|
||||
|
@@ -216,7 +216,7 @@ be called whenever userspace asks for a write(2) on the attribute.
|
||||
|
||||
[struct configfs_bin_attribute]
|
||||
|
||||
struct configfs_attribute {
|
||||
struct configfs_bin_attribute {
|
||||
struct configfs_attribute cb_attr;
|
||||
void *cb_private;
|
||||
size_t cb_max_size;
|
||||
|
@@ -359,3 +359,24 @@ encryption of files and directories.
|
||||
:maxdepth: 2
|
||||
|
||||
fscrypt
|
||||
|
||||
Pathname lookup
|
||||
===============
|
||||
|
||||
|
||||
This write-up is based on three articles published at lwn.net:
|
||||
|
||||
- <https://lwn.net/Articles/649115/> Pathname lookup in Linux
|
||||
- <https://lwn.net/Articles/649729/> RCU-walk: faster pathname lookup in Linux
|
||||
- <https://lwn.net/Articles/650786/> A walk among the symlinks
|
||||
|
||||
Written by Neil Brown with help from Al Viro and Jon Corbet.
|
||||
It has subsequently been updated to reflect changes in the kernel
|
||||
including:
|
||||
|
||||
- per-directory parallel name lookup.
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
||||
path-lookup.rst
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -125,6 +125,13 @@ process running on the system, which is named after the process ID (PID).
|
||||
The link self points to the process reading the file system. Each process
|
||||
subdirectory has the entries listed in Table 1-1.
|
||||
|
||||
Note that an open a file descriptor to /proc/<pid> or to any of its
|
||||
contained files or subdirectories does not prevent <pid> being reused
|
||||
for some other process in the event that <pid> exits. Operations on
|
||||
open /proc/<pid> file descriptors corresponding to dead processes
|
||||
never act on any new process that the kernel may, through chance, have
|
||||
also assigned the process ID <pid>. Instead, operations on these FDs
|
||||
usually fail with ESRCH.
|
||||
|
||||
Table 1-1: Process specific entries in /proc
|
||||
..............................................................................
|
||||
@@ -194,8 +201,10 @@ read the file /proc/PID/status:
|
||||
CapPrm: 0000000000000000
|
||||
CapEff: 0000000000000000
|
||||
CapBnd: ffffffffffffffff
|
||||
CapAmb: 0000000000000000
|
||||
NoNewPrivs: 0
|
||||
Seccomp: 0
|
||||
Speculation_Store_Bypass: thread vulnerable
|
||||
voluntary_ctxt_switches: 0
|
||||
nonvoluntary_ctxt_switches: 1
|
||||
|
||||
@@ -215,7 +224,7 @@ 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 4.8)
|
||||
Table 1-2: Contents of the status files (as of 4.19)
|
||||
..............................................................................
|
||||
Field Content
|
||||
Name filename of the executable
|
||||
@@ -270,8 +279,10 @@ Table 1-2: Contents of the status files (as of 4.8)
|
||||
CapPrm bitmap of permitted capabilities
|
||||
CapEff bitmap of effective capabilities
|
||||
CapBnd bitmap of capabilities bounding set
|
||||
CapAmb bitmap of ambient capabilities
|
||||
NoNewPrivs no_new_privs, like prctl(PR_GET_NO_NEW_PRIV, ...)
|
||||
Seccomp seccomp mode, like prctl(PR_GET_SECCOMP, ...)
|
||||
Speculation_Store_Bypass speculative store bypass mitigation status
|
||||
Cpus_allowed mask of CPUs on which this process may run
|
||||
Cpus_allowed_list Same as previous, but in "list format"
|
||||
Mems_allowed mask of memory nodes allowed to this process
|
||||
|
@@ -87,7 +87,7 @@ addressed with 16 direct blocks.
|
||||
For more than 16 blocks an indirect addressing in form of another tree is
|
||||
used. (scheme is the same as the one used for the superblock root nodes)
|
||||
|
||||
The filesize is stored 64bit. Inode counting starts with 1. (whilst long
|
||||
The filesize is stored 64bit. Inode counting starts with 1. (while long
|
||||
filename inodes start with 0)
|
||||
|
||||
Directories
|
||||
@@ -155,7 +155,7 @@ Then userspace.
|
||||
The requirement for a static, fixed preallocated system area comes from how
|
||||
qnx6fs deals with writes.
|
||||
Each superblock got it's own half of the system area. So superblock #1
|
||||
always uses blocks from the lower half whilst superblock #2 just writes to
|
||||
always uses blocks from the lower half while superblock #2 just writes to
|
||||
blocks represented by the upper half bitmap system area bits.
|
||||
|
||||
Bitmap blocks, Inode blocks and indirect addressing blocks for those two
|
||||
|
@@ -452,7 +452,7 @@ RETURN VALUE
|
||||
|
||||
|
||||
ERRORS
|
||||
EACCESS
|
||||
EACCES
|
||||
The current user does not have write access on the spufs mount
|
||||
point.
|
||||
|
||||
|
@@ -1131,7 +1131,7 @@ struct dentry_operations {
|
||||
|
||||
d_manage: called to allow the filesystem to manage the transition from a
|
||||
dentry (optional). This allows autofs, for example, to hold up clients
|
||||
waiting to explore behind a 'mountpoint' whilst letting the daemon go
|
||||
waiting to explore behind a 'mountpoint' while letting the daemon go
|
||||
past and construct the subtree there. 0 should be returned to let the
|
||||
calling process continue. -EISDIR can be returned to tell pathwalk to
|
||||
use this directory as an ordinary directory and to ignore anything
|
||||
|
@@ -110,7 +110,7 @@ owner field in the metadata object, we can immediately do top down validation to
|
||||
determine the scope of the problem.
|
||||
|
||||
Different types of metadata have different owner identifiers. For example,
|
||||
directory, attribute and extent tree blocks are all owned by an inode, whilst
|
||||
directory, attribute and extent tree blocks are all owned by an inode, while
|
||||
freespace btree blocks are owned by an allocation group. Hence the size and
|
||||
contents of the owner field are determined by the type of metadata object we are
|
||||
looking at. The owner information can also identify misplaced writes (e.g.
|
||||
|
@@ -417,7 +417,7 @@ level directory:
|
||||
filesystem from ever unmounting fully in the case of "retry forever"
|
||||
handler configurations.
|
||||
|
||||
Note: there is no guarantee that fail_at_unmount can be set whilst an
|
||||
Note: there is no guarantee that fail_at_unmount can be set while an
|
||||
unmount is in progress. It is possible that the sysfs entries are
|
||||
removed by the unmounting filesystem before a "retry forever" error
|
||||
handler configuration causes unmount to hang, and hence the filesystem
|
||||
|
Reference in New Issue
Block a user