tile-srom: switch to fixed_size_llseek()
authorAl Viro <viro@zeniv.linux.org.uk>
Sun, 23 Jun 2013 08:43:48 +0000 (12:43 +0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Sat, 29 Jun 2013 08:57:51 +0000 (12:57 +0400)
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
drivers/char/tile-srom.c

index 2e2036e940fcafc2c52af4552da1cfd5d984d938..7faeb1cde97d3e10a128326295b9570a3bfb9912 100644 (file)
@@ -273,32 +273,10 @@ static ssize_t srom_write(struct file *filp, const char __user *buf,
 }
 
 /* Provide our own implementation so we can use srom->total_size. */
-loff_t srom_llseek(struct file *filp, loff_t offset, int origin)
+loff_t srom_llseek(struct file *file, loff_t offset, int origin)
 {
-       struct srom_dev *srom = filp->private_data;
-
-       if (mutex_lock_interruptible(&srom->lock))
-               return -ERESTARTSYS;
-
-       switch (origin) {
-       case SEEK_END:
-               offset += srom->total_size;
-               break;
-       case SEEK_CUR:
-               offset += filp->f_pos;
-               break;
-       }
-
-       if (offset < 0 || offset > srom->total_size) {
-               offset = -EINVAL;
-       } else {
-               filp->f_pos = offset;
-               filp->f_version = 0;
-       }
-
-       mutex_unlock(&srom->lock);
-
-       return offset;
+       struct srom_dev *srom = file->private_data;
+       return fixed_size_llseek(file, offset, origin, srom->total_size);
 }
 
 static ssize_t total_show(struct device *dev,