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 /Documentation/filesystems/Locking | |
| 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>
Diffstat (limited to 'Documentation/filesystems/Locking')
| -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 |
