Re: [PATCH] sr: Ensure disk is revalidated when media changes

From: Stefan Hajnoczi
Date: Fri Apr 08 2011 - 07:38:09 EST


On Wed, Apr 6, 2011 at 11:06 AM, Tejun Heo <tj@xxxxxxxxxx> wrote:
> On Tue, Apr 05, 2011 at 12:21:30PM +0530, Amit Shah wrote:
>> > But I don't think this is the correct place to do it.  The problem
>> > happens because block layer consumes the event but doesn't remember it
>> > when the time for revalidation comes.  It should be done by block
>> > layer, not sr.  Hmmm... looking at the code, the new disk event code
>> > should handle this correctly.  Was 2.6.38 showing the problem too?
>>
>> Yes, 2.6.38 shows the same problem.  I went back to ancient kernels
>> (2.6.31 on Fedora 11-alpha) which had the previous media_changed
>> infrastructure and those places too show the same behaviour (with the
>> TEST_UNIT_READY way of detecting media changes).
>
> Can you please the patch attached in the following bz and see whether
> it makes any difference?
>
>  https://bugzilla.kernel.org/show_bug.cgi?id=13029

Hi Tejun,
There is a related issue I have been discussing with Amit:
https://lkml.org/lkml/2011/3/23/156

On media change the inode size is not updated by the sr driver or the
universal cdrom driver. A userspace process that holds a /dev/sr0
file descriptor open across media change causes all processes on the
system to see the old medium size when they do lseek(fd, 0, SEEK_END).

I think it would make sense to refresh the inode size on media change
so that even open file descriptors see the new size and a single
process cannot force a stale value for all other userspace processes
on the system.

Thoughts?

Stefan
--
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/