* [PATCH RESEND] Documentation: filesystems: update filesystem locking documentation
@ 2018-05-24 2:29 Sean Anderson
2018-05-26 3:41 ` Al Viro
0 siblings, 1 reply; 4+ messages in thread
From: Sean Anderson @ 2018-05-24 2:29 UTC (permalink / raw)
To: corbet, linux-doc; +Cc: linux-fsdevel, Al Viro, Matthew Wilcox, Jeff Layton
[-- Attachment #1.1: Type: text/plain, Size: 3557 bytes --]
Documentation/filesystems/Locking no longer reflects current locking
semantics. i_mutex is no longer used for locking, and has been superseded
by i_rwsem. Additionally, ->iterate_shared() was not documented.
Signed-off-by: Sean Anderson <seanga2@gmail.com>
Reviewed-by: Jeff Layton <jlayton@redhat.com>
---
Documentation/filesystems/Locking | 43 +++++++++++++++++--------------
1 file changed, 24 insertions(+), 19 deletions(-)
diff --git a/Documentation/filesystems/Locking b/Documentation/filesystems/Locking
index 75d2d57e2c44..15853d522941 100644
--- a/Documentation/filesystems/Locking
+++ b/Documentation/filesystems/Locking
@@ -69,31 +69,31 @@ prototypes:
locking rules:
all may block
- i_mutex(inode)
-lookup: yes
-create: yes
-link: yes (both)
-mknod: yes
-symlink: yes
-mkdir: yes
-unlink: yes (both)
-rmdir: yes (both) (see below)
-rename: yes (all) (see below)
+ i_rwsem(inode)
+lookup: shared
+create: exclusive
+link: exclusive (both)
+mknod: exclusive
+symlink: exclusive
+mkdir: exclusive
+unlink: exclusive (both)
+rmdir: exclusive (both)(see below)
+rename: exclusive (all) (see below)
readlink: no
get_link: no
-setattr: yes
+setattr: exclusive
permission: no (may not block if called in rcu-walk mode)
get_acl: no
getattr: no
listxattr: no
fiemap: no
update_time: no
-atomic_open: yes
+atomic_open: exclusive
tmpfile: no
- Additionally, ->rmdir(), ->unlink() and ->rename() have ->i_mutex on
-victim.
+ Additionally, ->rmdir(), ->unlink() and ->rename() have ->i_rwsem
+ exclusive on victim.
cross-directory ->rename() has (per-superblock) ->s_vfs_rename_sem.
See Documentation/filesystems/directory-locking for more detailed discussion
@@ -111,10 +111,10 @@ prototypes:
locking rules:
all may block
- i_mutex(inode)
+ i_rwsem(inode)
list: no
get: no
-set: yes
+set: exclusive
--------------------------- super_operations ---------------------------
prototypes:
@@ -217,14 +217,14 @@ prototypes:
locking rules:
All except set_page_dirty and freepage may block
- PageLocked(page) i_mutex
+ PageLocked(page) i_rwsem
writepage: yes, unlocks (see below)
readpage: yes, unlocks
writepages:
set_page_dirty no
readpages:
-write_begin: locks the page yes
-write_end: yes, unlocks yes
+write_begin: locks the page exclusive
+write_end: yes, unlocks exclusive
bmap:
invalidatepage: yes
releasepage: yes
@@ -439,6 +439,7 @@ prototypes:
ssize_t (*read_iter) (struct kiocb *, struct iov_iter *);
ssize_t (*write_iter) (struct kiocb *, struct iov_iter *);
int (*iterate) (struct file *, struct dir_context *);
+ int (*iterate_shared) (struct file *, struct dir_context *);
unsigned int (*poll) (struct file *, struct poll_table_struct *);
long (*unlocked_ioctl) (struct file *, unsigned int, unsigned long);
long (*compat_ioctl) (struct file *, unsigned int, unsigned long);
@@ -480,6 +481,10 @@ mutex or just to use i_size_read() instead.
Note: this does not protect the file->f_pos against concurrent modifications
since this is something the userspace has to take care about.
+->iterate() is called with i_rwsem exclusive.
+
+->iterate_shared() is called with i_rwsem at least shared.
+
->fasync() is responsible for maintaining the FASYNC bit in filp->f_flags.
Most instances call fasync_helper(), which does that maintenance, so it's
not normally something one needs to worry about. Return values > 0 will be
--
2.17.0
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 618 bytes --]
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH RESEND] Documentation: filesystems: update filesystem locking documentation
2018-05-24 2:29 [PATCH RESEND] Documentation: filesystems: update filesystem locking documentation Sean Anderson
@ 2018-05-26 3:41 ` Al Viro
2018-06-05 19:46 ` Sean Anderson
0 siblings, 1 reply; 4+ messages in thread
From: Al Viro @ 2018-05-26 3:41 UTC (permalink / raw)
To: Sean Anderson
Cc: corbet, linux-doc, linux-fsdevel, Matthew Wilcox, Jeff Layton
On Wed, May 23, 2018 at 10:29:10PM -0400, Sean Anderson wrote:
> Documentation/filesystems/Locking no longer reflects current locking
> semantics. i_mutex is no longer used for locking, and has been superseded
> by i_rwsem. Additionally, ->iterate_shared() was not documented.
Your mission, should you choose to accept it, shall be to locate the
old sig regarding the usual reaction to use of Quoted-Printable...
IOW, fix your mail setup. Applied, but...
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH RESEND] Documentation: filesystems: update filesystem locking documentation
2018-05-26 3:41 ` Al Viro
@ 2018-06-05 19:46 ` Sean Anderson
2018-06-07 18:31 ` Al Viro
0 siblings, 1 reply; 4+ messages in thread
From: Sean Anderson @ 2018-06-05 19:46 UTC (permalink / raw)
To: Al Viro; +Cc: corbet, linux-doc, linux-fsdevel, Matthew Wilcox, Jeff Layton
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
> Your mission, should you choose to accept it, shall be to locate
> the old sig regarding the usual reaction to use of
> Quoted-Printable...
>
> IOW, fix your mail setup. Applied, but.
Not sure what you mean by "Quoted-Printable"... Is PGP/MIME the
incorrect way to send messages? I've switched to the "traditional"
option for this one, and I've enabled "mail.strictly_mime" in my
settings. Let me know if this fixes things for you.
-----BEGIN PGP SIGNATURE-----
iQGTBAEBCgB9FiEEkGEdW86NSNID6GAoPuiP7LShEG4FAlsW6JxfFIAAAAAALgAo
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDkw
NjExRDVCQ0U4RDQ4RDIwM0U4NjAyODNFRTg4RkVDQjRBMTEwNkUACgkQPuiP7LSh
EG6W6wf+MS92RRCzMWTlvdUQZhIdMMzLBwlU3D4Y6eiEWzRz1o7IJxmW+0hmUCws
xo2uC1iUifRSrulYMHOmB5kCRIjL5grpadiJRlJzO1/EKkV4MUA4LlVqh9Z2sXae
o8bxC42/NF+7XKrABBuB+xzi51XGYXG4TevoB/FIMzQIHtnQ0EOkQomAxClm31gx
HbV/GKraYYseINuQ3m1hOdKD+Ior4laySpqbPZLx+8wumIzArlcsXJiw3BpF194W
Blmt5mDNybRPNObEk6huRXsbxoFq95Cu1w8UzFCp2fI6XOZlS9Z+ZrpKixpzFJ2p
lkEPDgrxEeWIA2nxuIsFGwzPnibrpA==
=4mdc
-----END PGP SIGNATURE-----
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH RESEND] Documentation: filesystems: update filesystem locking documentation
2018-06-05 19:46 ` Sean Anderson
@ 2018-06-07 18:31 ` Al Viro
0 siblings, 0 replies; 4+ messages in thread
From: Al Viro @ 2018-06-07 18:31 UTC (permalink / raw)
To: Sean Anderson
Cc: corbet, linux-doc, linux-fsdevel, Matthew Wilcox, Jeff Layton
On Tue, Jun 05, 2018 at 03:46:37PM -0400, Sean Anderson wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA512
>
> > Your mission, should you choose to accept it, shall be to locate
> > the old sig regarding the usual reaction to use of
> > Quoted-Printable...
> >
> > IOW, fix your mail setup. Applied, but.
>
> Not sure what you mean by "Quoted-Printable"... Is PGP/MIME the
> incorrect way to send messages? I've switched to the "traditional"
> option for this one, and I've enabled "mail.strictly_mime" in my
> settings. Let me know if this fixes things for you.
Useful test: if git am barfs on your mail (which it does for the
first posting in the thread), you are going to annoy people...
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2018-06-07 18:31 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-05-24 2:29 [PATCH RESEND] Documentation: filesystems: update filesystem locking documentation Sean Anderson
2018-05-26 3:41 ` Al Viro
2018-06-05 19:46 ` Sean Anderson
2018-06-07 18:31 ` Al Viro
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).