Files
twx-linux/fs
Miklos Szeredi 6c7e1a3d3d [PATCH] fuse: fix hang on SMP
Fuse didn't always call i_size_write() with i_mutex held which caused
rare hangs on SMP/32bit.  This bug has been present since fuse-2.2,
well before being merged into mainline.

The simplest solution is to protect i_size_write() with the
per-connection spinlock.  Using i_mutex for this purpose would require
some restructuring of the code and I'm not even sure it's always safe
to acquire i_mutex in all places i_size needs to be set.

Since most of vmtruncate is already duplicated for other reasons,
duplicate the remaining part as well, making all i_size_write() calls
internal to fuse.

Using i_size_write() was unnecessary in fuse_init_inode(), since this
function is only called on a newly created locked inode.

Reported by a few people over the years, but special thanks to Dana
Henriksen who was persistent enough in helping me debug it.

Signed-off-by: Miklos Szeredi <miklos@szeredi.hu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
2006-11-03 17:33:47 -08:00
..
2006-08-14 12:54:28 -07:00
2006-06-26 09:58:18 -07:00
2006-08-06 08:57:48 -07:00
2006-11-03 17:33:47 -08:00
2006-11-03 17:33:46 -08:00
2006-08-27 11:01:30 -07:00
2006-08-07 11:07:01 -07:00
2006-08-27 11:01:31 -07:00
2006-06-26 18:35:02 +02:00
2006-10-13 13:23:27 -07:00
2006-07-03 15:27:06 -07:00
2006-08-27 11:01:31 -07:00
2006-07-12 12:52:55 -07:00
2006-08-21 10:02:50 +02:00
2006-06-26 09:58:17 -07:00
2006-08-14 13:10:59 -07:00
2006-06-23 07:42:49 -07:00
2006-06-26 09:58:17 -07:00
2006-06-23 07:42:49 -07:00