diff options
author | Jan Kara <jack@suse.cz> | 2012-06-12 16:20:30 +0200 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2012-07-31 01:02:49 +0400 |
commit | c30dabfe5d10c5fd70d882e5afb8f59f2942b194 (patch) | |
tree | 2a643a825fb91a1ae48c5673a9f5fcba891b6122 /fs/fat | |
parent | 4fcf1c6205fcfc7a226a144ae4d83b7f5415cab8 (diff) | |
download | linux-c30dabfe5d10c5fd70d882e5afb8f59f2942b194.tar.gz linux-c30dabfe5d10c5fd70d882e5afb8f59f2942b194.tar.bz2 linux-c30dabfe5d10c5fd70d882e5afb8f59f2942b194.zip |
fs: Push mnt_want_write() outside of i_mutex
Currently, mnt_want_write() is sometimes called with i_mutex held and sometimes
without it. This isn't really a problem because mnt_want_write() is a
non-blocking operation (essentially has a trylock semantics) but when the
function starts to handle also frozen filesystems, it will get a full lock
semantics and thus proper lock ordering has to be established. So move
all mnt_want_write() calls outside of i_mutex.
One non-trivial case needing conversion is kern_path_create() /
user_path_create() which didn't include mnt_want_write() but now needs to
because it acquires i_mutex. Because there are virtual file systems which
don't bother with freeze / remount-ro protection we actually provide both
versions of the function - one which calls mnt_want_write() and one which does
not.
[AV: scratch the previous, mnt_want_write() has been moved to kern_path_create()
by now]
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/fat')
0 files changed, 0 insertions, 0 deletions