[PATCH] const file_operations fallout
authorAl Viro <viro@ftp.linux.org.uk>
Wed, 14 Mar 2007 09:04:31 +0000 (09:04 +0000)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Wed, 14 Mar 2007 22:27:48 +0000 (15:27 -0700)
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
sound/oss/dmasound/dmasound_core.c

index a0ec886f2aa367e0f573a3bc8e4f6d981260158f..f4056a9c371b03ee6df58c20a4d8e9e1a8c72a46 100644 (file)
@@ -1346,22 +1346,34 @@ static const struct file_operations sq_fops =
        .ioctl          = sq_ioctl,
        .open           = sq_open,
        .release        = sq_release,
+};
+
 #ifdef HAS_RECORD
-       .read           = NULL  /* default to no read for compat mode */
-#endif
+static const struct file_operations sq_fops_record =
+{
+       .owner          = THIS_MODULE,
+       .llseek         = no_llseek,
+       .write          = sq_write,
+       .poll           = sq_poll,
+       .ioctl          = sq_ioctl,
+       .open           = sq_open,
+       .release        = sq_release,
+       .read           = sq_read,
 };
+#endif
 
 static int sq_init(void)
 {
+       const struct file_operations *fops = &sq_fops;
 #ifndef MODULE
        int sq_unit;
 #endif
 
 #ifdef HAS_RECORD
        if (dmasound.mach.record)
-               sq_fops.read = sq_read ;
+               fops = &sq_fops_record;
 #endif
-       sq_unit = register_sound_dsp(&sq_fops, -1);
+       sq_unit = register_sound_dsp(fops, -1);
        if (sq_unit < 0) {
                printk(KERN_ERR "dmasound_core: couldn't register fops\n") ;
                return sq_unit ;