diff options
author | Miklos Szeredi <miklos@szeredi.hu> | 2006-04-26 04:49:06 -0400 |
---|---|---|
committer | Miklos Szeredi <miklos@szeredi.hu> | 2006-04-26 04:49:06 -0400 |
commit | 6dbbcb120570d747b00783820ee02d1e1bcf63de (patch) | |
tree | 9be2938cea30b1f2ce93ed59b8806fdfac62fd1e /fs/fuse/inode.c | |
parent | 5a5fb1ea74d8b82ca1461b885a1334fb21e037be (diff) |
[fuse] fix deadlock between fuse_put_super() and request_end(), try #2
A deadlock was possible, when the last reference to the superblock was
held due to a background request containing a file reference.
Releasing the file would release the vfsmount which in turn would
release the superblock. Since sbput_sem is held during the fput() and
fuse_put_super() tries to acquire this same semaphore, a deadlock
results.
The solution is to move the fput() outside the region protected by
sbput_sem.
Signed-off-by: Miklos Szeredi <miklos@szeredi.hu>
Diffstat (limited to 'fs/fuse/inode.c')
0 files changed, 0 insertions, 0 deletions