Revert "[fuse] fix deadlock between fuse_put_super() and request_end()"
authorMiklos Szeredi <miklos@szeredi.hu>
Wed, 26 Apr 2006 08:48:55 +0000 (10:48 +0200)
committerMiklos Szeredi <miklos@szeredi.hu>
Wed, 26 Apr 2006 08:48:55 +0000 (10:48 +0200)
commit5a5fb1ea74d8b82ca1461b885a1334fb21e037be
treef6e823d4a8e09ce0780d891f8f38f033ccbd7da2
parent4d5c34ec7b007cfb0771a36996b009f194acbb2f
Revert "[fuse] fix deadlock between fuse_put_super() and request_end()"

This reverts 73ce8355c243a434524a34c05cc417dd0467996e commit.

It was wrong, because it didn't take into account the requirement,
that iput() for background requests must be performed synchronously
with ->put_super(), otherwise active inodes may remain after unmount.

The right solution is to keep the sbput_sem and perform iput() within
the locked region, but move fput() outside sbput_sem.

Signed-off-by: Miklos Szeredi <miklos@szeredi.hu>
fs/fuse/dev.c
fs/fuse/fuse_i.h
fs/fuse/inode.c