diff options
author | Takashi Iwai <tiwai@suse.de> | 2010-04-13 13:49:04 +0400 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2010-04-13 14:01:21 +0400 |
commit | 02f4865fa415a87de28cc8c2e4d798ff46be1cf8 (patch) | |
tree | 7d8e1087fd17e0390439ad4fe3cdd59477c3032c /sound/core/rawmidi.c | |
parent | 73029e0ff18dfac8a1aab1dc188e1e150bbe3adc (diff) | |
download | linux-02f4865fa415a87de28cc8c2e4d798ff46be1cf8.tar.xz |
ALSA: core - Define llseek fops
Set no_llseek to llseek file ops of each sound component (but for hwdep).
This avoids the implicit BKL invocation via generic_file_llseek() used
as default when fops.llseek is NULL.
Also call nonseekable_open() at each open ops to ensure the file flags
have no seek bit.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/core/rawmidi.c')
-rw-r--r-- | sound/core/rawmidi.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/sound/core/rawmidi.c b/sound/core/rawmidi.c index 0f5a194695d9..eb68326c37d4 100644 --- a/sound/core/rawmidi.c +++ b/sound/core/rawmidi.c @@ -376,6 +376,10 @@ static int snd_rawmidi_open(struct inode *inode, struct file *file) if ((file->f_flags & O_APPEND) && !(file->f_flags & O_NONBLOCK)) return -EINVAL; /* invalid combination */ + err = nonseekable_open(inode, file); + if (err < 0) + return err; + if (maj == snd_major) { rmidi = snd_lookup_minor_data(iminor(inode), SNDRV_DEVICE_TYPE_RAWMIDI); @@ -1391,6 +1395,7 @@ static const struct file_operations snd_rawmidi_f_ops = .write = snd_rawmidi_write, .open = snd_rawmidi_open, .release = snd_rawmidi_release, + .llseek = no_llseek, .poll = snd_rawmidi_poll, .unlocked_ioctl = snd_rawmidi_ioctl, .compat_ioctl = snd_rawmidi_ioctl_compat, |