Re: linux-next: Tree for Jun 26 [ vfs | block | fuse (cpuidle) releated? ]
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date: 2013-06-26 15:32:36
Also in:
linux-fsdevel, lkml
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date: 2013-06-26 15:32:36
Also in:
linux-fsdevel, lkml
On Wed, Jun 26, 2013 at 05:24:46PM +0200, Thomas Petazzoni wrote:
Dear Sedat Dilek, On Wed, 26 Jun 2013 16:50:55 +0200, Sedat Dilek wrote:quoted
[ TO/CC char-misc folks ] The CULPRIT commit [1] due to my git-bisecting is: commit 585d98e00ba7a5e2abe65f7a1eff631cb612289b "char: misc: assign file->private_data in all cases" After reverting it, my system boots up fine again. Can someone from the char-misc folks look at that?Ok. My understanding is that the misc device registered by fs/fuse/dev.c:fuse_dev_init() makes the assumption that file->private_data == NULL when a misc device is opened. But I'm not sure to fully understand the code flow of the FUSE filesystem. And since it doesn't provide its own implementation of the ->open() operation, the misc infrastructure was leaving the file->private_data defined to NULL before my patch. With my patch, the file->private_data gets assigned unconditionally (regardless of whether the misc driver provides or does not provide a ->open() operation) which modifies the unwritten assumption that fuse was making about the initial value of file->private_data. I believe the assumption made by fuse over the initial value of this variable is a bit fragile. Maybe the FUSE code needs to be slightly adjusted to not make this assumption?
As the FUSE code was working properly before this change, I think this misc core change needs to be reverted, so I'll go do that in a bit. thanks, greg k-h