diff options
author | Christoph Hellwig <hch@lst.de> | 2009-06-19 14:22:37 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2009-06-24 08:15:25 -0400 |
commit | 7e325d3a6b117c7288bfc0755410e9d9d2b71326 (patch) | |
tree | 37a59f2c771c31559118987d2ee91e870274ec8b | |
parent | f6cc746bbb3b8a8ceb8514a7906ba582607a8cf7 (diff) |
update Documentation/filesystems/Locking
The rules for locking in many superblock operations has changed
significantly, so update the documentation for it. Also correct some
older updates and ommissions.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
-rw-r--r-- | Documentation/filesystems/Locking | 43 |
1 files changed, 22 insertions, 21 deletions
diff --git a/Documentation/filesystems/Locking b/Documentation/filesystems/Locking index 229d7b7c50a3..18b9d0ca0630 100644 --- a/Documentation/filesystems/Locking +++ b/Documentation/filesystems/Locking | |||
@@ -109,27 +109,28 @@ prototypes: | |||
109 | 109 | ||
110 | locking rules: | 110 | locking rules: |
111 | All may block. | 111 | All may block. |
112 | BKL s_lock s_umount | 112 | None have BKL |
113 | alloc_inode: no no no | 113 | s_umount |
114 | destroy_inode: no | 114 | alloc_inode: |
115 | dirty_inode: no (must not sleep) | 115 | destroy_inode: |
116 | write_inode: no | 116 | dirty_inode: (must not sleep) |
117 | drop_inode: no !!!inode_lock!!! | 117 | write_inode: |
118 | delete_inode: no | 118 | drop_inode: !!!inode_lock!!! |
119 | put_super: yes yes no | 119 | delete_inode: |
120 | write_super: no yes read | 120 | put_super: write |
121 | sync_fs: no no read | 121 | write_super: read |
122 | freeze_fs: ? | 122 | sync_fs: read |
123 | unfreeze_fs: ? | 123 | freeze_fs: read |
124 | statfs: no no no | 124 | unfreeze_fs: read |
125 | remount_fs: yes yes maybe (see below) | 125 | statfs: no |
126 | clear_inode: no | 126 | remount_fs: maybe (see below) |
127 | umount_begin: yes no no | 127 | clear_inode: |
128 | show_options: no (vfsmount->sem) | 128 | umount_begin: no |
129 | quota_read: no no no (see below) | 129 | show_options: no (namespace_sem) |
130 | quota_write: no no no (see below) | 130 | quota_read: no (see below) |
131 | 131 | quota_write: no (see below) | |
132 | ->remount_fs() will have the s_umount lock if it's already mounted. | 132 | |
133 | ->remount_fs() will have the s_umount exclusive lock if it's already mounted. | ||
133 | When called from get_sb_single, it does NOT have the s_umount lock. | 134 | When called from get_sb_single, it does NOT have the s_umount lock. |
134 | ->quota_read() and ->quota_write() functions are both guaranteed to | 135 | ->quota_read() and ->quota_write() functions are both guaranteed to |
135 | be the only ones operating on the quota file by the quota code (via | 136 | be the only ones operating on the quota file by the quota code (via |