On Mon, 2011-02-07 at 00:23 +0100, Willy Tarreau wrote: > 2.6.27.58-stable review patch. If anyone has any objections, please let us know. > > ------------------ > > From: Slava Pestov > > commit 364829b1263b44aa60383824e4c1289d83d78ca7 upstream. > > The file_ops struct for the "trace" special file defined llseek as seq_lseek(). > However, if the file was opened for writing only, seq_open() was not called, > and the seek would dereference a null pointer, file->private_data. > > This patch introduces a new wrapper for seq_lseek() which checks if the file > descriptor is opened for reading first. If not, it does nothing. [...] > --- longterm-2.6.27.orig/kernel/trace/trace.c 2011-01-23 10:52:37.000000000 +0100 > +++ longterm-2.6.27/kernel/trace/trace.c 2011-01-29 11:42:07.287067215 +0100 > @@ -2041,17 +2041,25 @@ > return ret; > } > > +static loff_t tracing_seek(struct file *file, loff_t offset, int origin) [...] > + .llseek = tracing_lseek, [...] > + .llseek = tracing_lseek, [...] These names don't agree! Ben. -- Ben Hutchings Once a job is fouled up, anything done to improve it makes it worse.