|
@@ -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,
|