Re: linux-next: Tree for Jun 26 [ vfs | block | fuse (cpuidle)releated? ]

From: Thomas Petazzoni
Date: Wed Jun 26 2013 - 11:24:56 EST


Dear Sedat Dilek,

On Wed, 26 Jun 2013 16:50:55 +0200, Sedat Dilek wrote:

> [ 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?

Best regards,

Thomas
--
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/