Thread (10 messages) 10 messages, 3 authors, 2013-06-26

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

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help