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

From: Sedat Dilek
Date: Wed Jun 26 2013 - 11:36:12 EST


On Wed, Jun 26, 2013 at 5:32 PM, Greg Kroah-Hartman
<gregkh@xxxxxxxxxxxxxxxxxxx> wrote:
> 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:
>>
>> > [ 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.
>

Good, sound reasonable.

I was not aware that char-misc and fuse code is so interwoven (hope
this is the right word).

- Sedat -

> thanks,
>
> greg k-h
--
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/