X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=fs%2Fseq_file.c;h=5a73e085fb4e53ff52e93ddad93ca6b737dfdb21;hb=9bf4aaab3e101692164d49b7ca357651eb691cb6;hp=8bd7097f3cfb60a57bbb02211e2e26f89a4bfb9d;hpb=db216c3d5e4c040e557a50f8f5d35d5c415e8c1c;p=linux-2.6.git diff --git a/fs/seq_file.c b/fs/seq_file.c index 8bd7097f3..5a73e085f 100644 --- a/fs/seq_file.c +++ b/fs/seq_file.c @@ -35,6 +35,9 @@ int seq_open(struct file *file, struct seq_operations *op) sema_init(&p->sem, 1); p->op = op; file->private_data = p; + + /* SEQ files support lseek, but not pread/pwrite */ + file->f_mode &= ~(FMODE_PREAD | FMODE_PWRITE); return 0; } EXPORT_SYMBOL(seq_open); @@ -54,9 +57,6 @@ ssize_t seq_read(struct file *file, char __user *buf, size_t size, loff_t *ppos) void *p; int err = 0; - if (ppos != &file->f_pos) - return -EPIPE; - down(&m->sem); /* grab buffer if we didn't have one */ if (!m->buf) {