diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2013-06-23 21:34:45 +0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2013-06-29 12:57:52 +0400 |
commit | 5d48f3a2de568ba2c9d06ecbdf995e0702748f22 (patch) | |
tree | 1ce9dc573a60f063ff5661a0eb5641e68ba95081 /fs/block_dev.c | |
parent | d2c40f789f6c98c50bf01cf84ef46415fb7a2776 (diff) | |
download | lwn-5d48f3a2de568ba2c9d06ecbdf995e0702748f22.tar.gz lwn-5d48f3a2de568ba2c9d06ecbdf995e0702748f22.zip |
block_dev: switch to fixed_size_llseek()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/block_dev.c')
-rw-r--r-- | fs/block_dev.c | 23 |
1 files changed, 1 insertions, 22 deletions
diff --git a/fs/block_dev.c b/fs/block_dev.c index 2091db8cdd78..431b6a04ebfd 100644 --- a/fs/block_dev.c +++ b/fs/block_dev.c @@ -325,31 +325,10 @@ static int blkdev_write_end(struct file *file, struct address_space *mapping, static loff_t block_llseek(struct file *file, loff_t offset, int whence) { struct inode *bd_inode = file->f_mapping->host; - loff_t size; loff_t retval; mutex_lock(&bd_inode->i_mutex); - size = i_size_read(bd_inode); - - retval = -EINVAL; - switch (whence) { - case SEEK_END: - offset += size; - break; - case SEEK_CUR: - offset += file->f_pos; - case SEEK_SET: - break; - default: - goto out; - } - if (offset >= 0 && offset <= size) { - if (offset != file->f_pos) { - file->f_pos = offset; - } - retval = offset; - } -out: + retval = fixed_size_llseek(file, offset, whence, i_size_read(bd_inode)); mutex_unlock(&bd_inode->i_mutex); return retval; } |