|
@@ -54,7 +54,7 @@ static loff_t lseek_execute(struct file *file, struct inode *inode,
|
|
|
* generic_file_llseek_size - generic llseek implementation for regular files
|
|
|
* @file: file structure to seek on
|
|
|
* @offset: file offset to seek to
|
|
|
- * @origin: type of seek
|
|
|
+ * @whence: type of seek
|
|
|
* @size: max size of this file in file system
|
|
|
* @eof: offset used for SEEK_END position
|
|
|
*
|
|
@@ -67,12 +67,12 @@ static loff_t lseek_execute(struct file *file, struct inode *inode,
|
|
|
* read/writes behave like SEEK_SET against seeks.
|
|
|
*/
|
|
|
loff_t
|
|
|
-generic_file_llseek_size(struct file *file, loff_t offset, int origin,
|
|
|
+generic_file_llseek_size(struct file *file, loff_t offset, int whence,
|
|
|
loff_t maxsize, loff_t eof)
|
|
|
{
|
|
|
struct inode *inode = file->f_mapping->host;
|
|
|
|
|
|
- switch (origin) {
|
|
|
+ switch (whence) {
|
|
|
case SEEK_END:
|
|
|
offset += eof;
|
|
|
break;
|
|
@@ -122,17 +122,17 @@ EXPORT_SYMBOL(generic_file_llseek_size);
|
|
|
* generic_file_llseek - generic llseek implementation for regular files
|
|
|
* @file: file structure to seek on
|
|
|
* @offset: file offset to seek to
|
|
|
- * @origin: type of seek
|
|
|
+ * @whence: type of seek
|
|
|
*
|
|
|
* This is a generic implemenation of ->llseek useable for all normal local
|
|
|
* filesystems. It just updates the file offset to the value specified by
|
|
|
- * @offset and @origin under i_mutex.
|
|
|
+ * @offset and @whence under i_mutex.
|
|
|
*/
|
|
|
-loff_t generic_file_llseek(struct file *file, loff_t offset, int origin)
|
|
|
+loff_t generic_file_llseek(struct file *file, loff_t offset, int whence)
|
|
|
{
|
|
|
struct inode *inode = file->f_mapping->host;
|
|
|
|
|
|
- return generic_file_llseek_size(file, offset, origin,
|
|
|
+ return generic_file_llseek_size(file, offset, whence,
|
|
|
inode->i_sb->s_maxbytes,
|
|
|
i_size_read(inode));
|
|
|
}
|
|
@@ -142,32 +142,32 @@ EXPORT_SYMBOL(generic_file_llseek);
|
|
|
* noop_llseek - No Operation Performed llseek implementation
|
|
|
* @file: file structure to seek on
|
|
|
* @offset: file offset to seek to
|
|
|
- * @origin: type of seek
|
|
|
+ * @whence: type of seek
|
|
|
*
|
|
|
* This is an implementation of ->llseek useable for the rare special case when
|
|
|
* userspace expects the seek to succeed but the (device) file is actually not
|
|
|
* able to perform the seek. In this case you use noop_llseek() instead of
|
|
|
* falling back to the default implementation of ->llseek.
|
|
|
*/
|
|
|
-loff_t noop_llseek(struct file *file, loff_t offset, int origin)
|
|
|
+loff_t noop_llseek(struct file *file, loff_t offset, int whence)
|
|
|
{
|
|
|
return file->f_pos;
|
|
|
}
|
|
|
EXPORT_SYMBOL(noop_llseek);
|
|
|
|
|
|
-loff_t no_llseek(struct file *file, loff_t offset, int origin)
|
|
|
+loff_t no_llseek(struct file *file, loff_t offset, int whence)
|
|
|
{
|
|
|
return -ESPIPE;
|
|
|
}
|
|
|
EXPORT_SYMBOL(no_llseek);
|
|
|
|
|
|
-loff_t default_llseek(struct file *file, loff_t offset, int origin)
|
|
|
+loff_t default_llseek(struct file *file, loff_t offset, int whence)
|
|
|
{
|
|
|
struct inode *inode = file->f_path.dentry->d_inode;
|
|
|
loff_t retval;
|
|
|
|
|
|
mutex_lock(&inode->i_mutex);
|
|
|
- switch (origin) {
|
|
|
+ switch (whence) {
|
|
|
case SEEK_END:
|
|
|
offset += i_size_read(inode);
|
|
|
break;
|
|
@@ -216,7 +216,7 @@ out:
|
|
|
}
|
|
|
EXPORT_SYMBOL(default_llseek);
|
|
|
|
|
|
-loff_t vfs_llseek(struct file *file, loff_t offset, int origin)
|
|
|
+loff_t vfs_llseek(struct file *file, loff_t offset, int whence)
|
|
|
{
|
|
|
loff_t (*fn)(struct file *, loff_t, int);
|
|
|
|
|
@@ -225,11 +225,11 @@ loff_t vfs_llseek(struct file *file, loff_t offset, int origin)
|
|
|
if (file->f_op && file->f_op->llseek)
|
|
|
fn = file->f_op->llseek;
|
|
|
}
|
|
|
- return fn(file, offset, origin);
|
|
|
+ return fn(file, offset, whence);
|
|
|
}
|
|
|
EXPORT_SYMBOL(vfs_llseek);
|
|
|
|
|
|
-SYSCALL_DEFINE3(lseek, unsigned int, fd, off_t, offset, unsigned int, origin)
|
|
|
+SYSCALL_DEFINE3(lseek, unsigned int, fd, off_t, offset, unsigned int, whence)
|
|
|
{
|
|
|
off_t retval;
|
|
|
struct fd f = fdget(fd);
|
|
@@ -237,8 +237,8 @@ SYSCALL_DEFINE3(lseek, unsigned int, fd, off_t, offset, unsigned int, origin)
|
|
|
return -EBADF;
|
|
|
|
|
|
retval = -EINVAL;
|
|
|
- if (origin <= SEEK_MAX) {
|
|
|
- loff_t res = vfs_llseek(f.file, offset, origin);
|
|
|
+ if (whence <= SEEK_MAX) {
|
|
|
+ loff_t res = vfs_llseek(f.file, offset, whence);
|
|
|
retval = res;
|
|
|
if (res != (loff_t)retval)
|
|
|
retval = -EOVERFLOW; /* LFS: should only happen on 32 bit platforms */
|
|
@@ -250,7 +250,7 @@ SYSCALL_DEFINE3(lseek, unsigned int, fd, off_t, offset, unsigned int, origin)
|
|
|
#ifdef __ARCH_WANT_SYS_LLSEEK
|
|
|
SYSCALL_DEFINE5(llseek, unsigned int, fd, unsigned long, offset_high,
|
|
|
unsigned long, offset_low, loff_t __user *, result,
|
|
|
- unsigned int, origin)
|
|
|
+ unsigned int, whence)
|
|
|
{
|
|
|
int retval;
|
|
|
struct fd f = fdget(fd);
|
|
@@ -260,11 +260,11 @@ SYSCALL_DEFINE5(llseek, unsigned int, fd, unsigned long, offset_high,
|
|
|
return -EBADF;
|
|
|
|
|
|
retval = -EINVAL;
|
|
|
- if (origin > SEEK_MAX)
|
|
|
+ if (whence > SEEK_MAX)
|
|
|
goto out_putf;
|
|
|
|
|
|
offset = vfs_llseek(f.file, ((loff_t) offset_high << 32) | offset_low,
|
|
|
- origin);
|
|
|
+ whence);
|
|
|
|
|
|
retval = (int)offset;
|
|
|
if (offset >= 0) {
|