Signed-off-by: Al Viro <[EMAIL PROTECTED]>
---
 sound/oss/dmasound/dmasound_core.c |   20 ++++++++++++++++----
 1 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/sound/oss/dmasound/dmasound_core.c 
b/sound/oss/dmasound/dmasound_core.c
index a0ec886..f4056a9 100644
--- a/sound/oss/dmasound/dmasound_core.c
+++ b/sound/oss/dmasound/dmasound_core.c
@@ -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 ;
-- 
1.5.0-rc2.GIT


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to