Searched hist:"9 ffbb9162312fd8113037cb3d94f787f06bbfa9a" (Results 1 – 3 of 3) sorted by relevance
/openbmc/linux/fs/fuse/ |
H A D | inode.c | diff 9ffbb9162312fd8113037cb3d94f787f06bbfa9a Tue Oct 17 02:10:06 CDT 2006 Miklos Szeredi <miklos@szeredi.hu> [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: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
|
H A D | dir.c | diff 9ffbb9162312fd8113037cb3d94f787f06bbfa9a Tue Oct 17 02:10:06 CDT 2006 Miklos Szeredi <miklos@szeredi.hu> [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: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
|
H A D | file.c | diff 9ffbb9162312fd8113037cb3d94f787f06bbfa9a Tue Oct 17 02:10:06 CDT 2006 Miklos Szeredi <miklos@szeredi.hu> [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: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
|