ps3flash: switch to generic_file_llseek_size()
authorAl Viro <viro@zeniv.linux.org.uk>
Mon, 17 Jun 2013 06:05:35 +0000 (10:05 +0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Sat, 29 Jun 2013 08:57:33 +0000 (12:57 +0400)
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
drivers/char/ps3flash.c

index 8cafa9ccd43f0e7805a86fb0edb8f6ffa526363b..0b311fa277ef097f485d9aa92da18c262a7f10dd 100644 (file)
@@ -98,32 +98,8 @@ static int ps3flash_fetch(struct ps3_storage_device *dev, u64 start_sector)
 static loff_t ps3flash_llseek(struct file *file, loff_t offset, int origin)
 {
        struct ps3_storage_device *dev = ps3flash_dev;
-       loff_t res;
-
-       mutex_lock(&file->f_mapping->host->i_mutex);
-       switch (origin) {
-       case 0:
-               break;
-       case 1:
-               offset += file->f_pos;
-               break;
-       case 2:
-               offset += dev->regions[dev->region_idx].size*dev->blk_size;
-               break;
-       default:
-               offset = -1;
-       }
-       if (offset < 0) {
-               res = -EINVAL;
-               goto out;
-       }
-
-       file->f_pos = offset;
-       res = file->f_pos;
-
-out:
-       mutex_unlock(&file->f_mapping->host->i_mutex);
-       return res;
+       return generic_file_llseek_size(file, offset, origin, MAX_LFS_FILESIZE,
+                       dev->regions[dev->region_idx].size*dev->blk_size);
 }
 
 static ssize_t ps3flash_read(char __user *userbuf, void *kernelbuf,