Files
twx-linux/include/linux
Andrew Morton 692c0509fd [PATCH] Simplify proc/devices and fix early termination regression
Repair /proc/devices early-termination regression.

2.6.16 broke /proc/devices.  An application often gets an
EOF before the end of data is reached, if that application
uses a series of short read(2)s to access the data.  I have
used read buffers of varying sizes with varying degrees
of unsuccess (larger sizes get further into the data than
smaller sizes, following a simple pattern).  It appears
that the only safe way to get the data is to use a single
read buffer larger than all the data in /proc/devices.

The following example demonstates the problem:

    # dd if=/proc/devices bs=1
    Character devices:
      1 mem
    27+0 records in
    27+0 records out

This patch is a backport of the fix recently accepted to
Linus's tree:

    commit 68eef3b479
    [PATCH] Simplify proc/devices and fix early termination regression

It replaces the complex, state-machine algorithm introduced
in 2.6.16 with a simple algorithm, modeled on the implementation
of /proc/interrupts.

[akpm@osdl.org: cleanups, simplifications]

Signed-off-by: Joe Korty <joe.korty@ccur.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2006-05-01 12:03:43 -07:00
..
2006-02-22 09:32:46 +00:00
2006-01-18 19:20:24 -08:00
2006-01-13 16:29:56 -08:00
2006-01-13 09:12:21 -08:00
2006-02-03 08:32:00 -08:00
2006-03-09 19:47:37 -08:00
2006-02-11 21:41:11 -08:00
2006-03-27 22:47:30 -08:00
2006-05-01 12:03:42 -07:00
2006-01-14 18:27:10 -08:00
2006-01-18 19:20:29 -08:00
2006-03-08 14:14:01 -08:00
2006-01-14 18:27:09 -08:00
2006-02-01 08:53:13 -08:00
2006-02-08 01:03:52 -05:00
2006-02-10 08:13:12 -08:00
2006-02-22 09:39:02 -08:00
2006-01-18 19:20:29 -08:00
2006-01-14 18:27:12 -08:00
2006-02-09 16:43:38 -08:00
2006-03-19 13:21:12 -08:00
2006-03-08 14:14:01 -08:00
2006-01-15 02:12:54 +01:00
2006-03-08 14:14:01 -08:00
2006-03-27 22:47:31 -08:00
2006-01-10 08:01:42 -08:00
2006-01-14 18:27:13 -08:00
2006-02-07 20:56:35 -05:00
2006-01-12 14:06:31 -08:00
2006-02-24 14:31:39 -08:00
2006-02-11 21:41:11 -08:00
2006-01-12 14:06:38 -08:00
2006-01-18 19:20:17 -08:00
2006-02-10 08:13:12 -08:00
2006-01-10 08:01:59 -08:00
2006-02-10 08:13:12 -08:00
2006-02-01 08:53:13 -08:00
2006-01-10 08:01:57 -08:00