diff options
author | Fabian Frederick <fabf@skynet.be> | 2015-02-17 22:45:31 +0100 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-02-17 23:34:51 +0100 |
commit | ed3ad79f87f31beed64778af0b29aff3074f700e (patch) | |
tree | 6bf46242e32c441b0e16ff95295507c0323ee833 /fs/ntfs/volume.h | |
parent | fs/ufs/super.c: remove unnecessary casting (diff) | |
download | linux-ed3ad79f87f31beed64778af0b29aff3074f700e.tar.xz linux-ed3ad79f87f31beed64778af0b29aff3074f700e.zip |
fs/ufs/super.c: fix potential race condition
Let locking subsystem decide on mutex management. As reported by Andrew
Morton this patch fixes a bug:
: lock_ufs() is assuming that on non-preempt uniprocessor, the calling
: code will run atomically up to the matching unlock_ufs().
:
: But that isn't true. The very first site I looked at (ufs_frag_map)
: does sb_bread() under lock_ufs(). And sb_bread() will call schedule(),
: very commonly.
:
: The ->mutex_owner stuff is a bit hacky but should work OK.
Signed-off-by: Fabian Frederick <fabf@skynet.be>
Cc: Evgeniy Dushistov <dushistov@mail.ru>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs/ntfs/volume.h')
0 files changed, 0 insertions, 0 deletions