Re: 2.1.118 Tons of oopes

Richard Gooch (rgooch@atnf.csiro.au)
Fri, 28 Aug 1998 08:50:24 +1000


Brandon S. Allbery writes:
> In message <199808271419.HAA24567@dm.cobaltmicro.com>, "David S. Miller"
> writes
> :
> +-----
> | Definately not! But if flush() was appended to the structure, then
> | people had only to recompile their drivers and all would be fine. So
> | there would be no silent failures in that scheme.
> | ...
> | So please explain where the benefit of placing flush() in the middle
> | is?
> |
> | So that people don't "only recompile their drivers" and the driver
> | code actually get updated and fixes done by or sent to the maintainer!
> +--->8
>
> The point that's apparently being missed by most people is that a working
> flush method is needed to fix a serious bug in NFS (data loss when a file is
> closed and an error occurs during the final write). The fix is that you
> flush first and report the error then, because it's too late if you find the
> error during the actual close.
>
> So all drivers should be updated to have a *working* flush() (a null pointer
> accomplishes nothing, it leaves NFS still broken). Linus chose to force
> this by putting flush() where it would cause serious breakage for drivers
> not aware of it, to force those drivers to be updated.

Well, what you say appears to not be true. Or perhaps the patch has
included a lot of broken drivers. I've just looked through the patch
and *a lot* of drivers have simply inserted NULL for the flush()
method.

In fact, *ONLY* the NFS code seems to have implemented the flush()
method. So, it looks to me that the flush() method is entirely
optional and hence it would have been entirely safe to append the new
method at the end of the structure and rely on structure
initialisation.

So I've *STILL* not seen any clear justification for this breakage.

Regards,

Richard....

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.altern.org/andrebalsa/doc/lkml-faq.html