diff options
Diffstat (limited to 'drivers/char/ps3flash.c')
| -rw-r--r-- | drivers/char/ps3flash.c | 28 | 
1 files changed, 2 insertions, 26 deletions
| diff --git a/drivers/char/ps3flash.c b/drivers/char/ps3flash.c index 8cafa9ccd43f..0b311fa277ef 100644 --- a/drivers/char/ps3flash.c +++ b/drivers/char/ps3flash.c @@ -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, |