VServer 1.9.2 (patch-2.6.8.1-vs1.9.2.diff)
[linux-2.6.git] / fs / seq_file.c
index 8bd7097..5a73e08 100644 (file)
@@ -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) {