Skip to content

Commit

Permalink
docs: filesystems: convert files.txt to ReST
Browse files Browse the repository at this point in the history
- Add a SPDX header;
- Adjust document title;
- Some whitespace fixes and new line breaks;
- Mark literal blocks as such;
- Add it to filesystems/index.rst.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Link: https://lore.kernel.org/r/e31b0f6a7ee466a233dc7f9c73f53f07ebb07f0b.1588021877.git.mchehab+huawei@kernel.org
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
  • Loading branch information
Mauro Carvalho Chehab authored and Jonathan Corbet committed May 5, 2020
1 parent e6f7df7 commit e6d42cb
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 5 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
.. SPDX-License-Identifier: GPL-2.0
===================================
File management in the Linux kernel
-----------------------------------
===================================

This document describes how locking for files (struct file)
and file descriptor table (struct files) works.
Expand Down Expand Up @@ -34,7 +37,7 @@ appear atomic. Here are the locking rules for
the fdtable structure -

1. All references to the fdtable must be done through
the files_fdtable() macro :
the files_fdtable() macro::

struct fdtable *fdt;
Expand All @@ -61,7 +64,8 @@ the fdtable structure -
4. To look up the file structure given an fd, a reader
must use either fcheck() or fcheck_files() APIs. These
take care of barrier requirements due to lock-free lookup.
An example :

An example::

struct file *file;
Expand All @@ -77,7 +81,7 @@ the fdtable structure -
of the fd (fget()/fget_light()) are lock-free, it is possible
that look-up may race with the last put() operation on the
file structure. This is avoided using atomic_long_inc_not_zero()
on ->f_count :
on ->f_count::

rcu_read_lock();
file = fcheck_files(files, fd);
Expand Down Expand Up @@ -106,7 +110,8 @@ the fdtable structure -
holding files->file_lock. If ->file_lock is dropped, then
another thread expand the files thereby creating a new
fdtable and making the earlier fdtable pointer stale.
For example :

For example::

spin_lock(&files->file_lock);
fd = locate_fd(files, file, start);
Expand Down
1 change: 1 addition & 0 deletions Documentation/filesystems/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ algorithms work.
devpts
dnotify
fiemap
files

automount-support

Expand Down

0 comments on commit e6d42cb

Please sign in to comment.