#define dprintk        if (debug) printk
 
-static inline struct dmxdev_filter *
-dvb_dmxdev_file_to_filter(struct file *file)
-{
-       return (struct dmxdev_filter *) file->private_data;
-}
-
 static inline void dvb_dmxdev_buffer_init(struct dmxdev_buffer *buffer)
 {
        buffer->data=NULL;
 static ssize_t
 dvb_demux_read(struct file *file, char __user *buf, size_t count, loff_t *ppos)
 {
-       struct dmxdev_filter *dmxdevfilter=dvb_dmxdev_file_to_filter(file);
+       struct dmxdev_filter *dmxdevfilter= file->private_data;
        int ret=0;
 
        if (down_interruptible(&dmxdevfilter->mutex))
 static int dvb_demux_do_ioctl(struct inode *inode, struct file *file,
                              unsigned int cmd, void *parg)
 {
-       struct dmxdev_filter *dmxdevfilter=dvb_dmxdev_file_to_filter(file);
+       struct dmxdev_filter *dmxdevfilter = file->private_data;
        struct dmxdev *dmxdev=dmxdevfilter->dev;
        unsigned long arg=(unsigned long) parg;
        int ret=0;
 
 static unsigned int dvb_demux_poll (struct file *file, poll_table *wait)
 {
-       struct dmxdev_filter *dmxdevfilter = dvb_dmxdev_file_to_filter(file);
+       struct dmxdev_filter *dmxdevfilter = file->private_data;
        unsigned int mask = 0;
 
        if (!dmxdevfilter)
 
 static int dvb_demux_release(struct inode *inode, struct file *file)
 {
-       struct dmxdev_filter *dmxdevfilter = dvb_dmxdev_file_to_filter(file);
+       struct dmxdev_filter *dmxdevfilter = file->private_data;
        struct dmxdev *dmxdev = dmxdevfilter->dev;
 
        return dvb_dmxdev_filter_free(dmxdev, dmxdevfilter);
                dvb_dmxdev_filter_state_set(&dmxdev->filter[i], DMXDEV_STATE_FREE);
                dmxdev->dvr[i].dev=dmxdev;
                dmxdev->dvr[i].buffer.data=NULL;
-               dvb_dmxdev_filter_state_set(&dmxdev->filter[i], DMXDEV_STATE_FREE);
                dvb_dmxdev_dvr_state_set(&dmxdev->dvr[i], DMXDEV_STATE_FREE);
        }