aboutsummaryrefslogtreecommitdiffstats
path: root/fs/read_write.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/read_write.c')
-rw-r--r--fs/read_write.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/fs/read_write.c b/fs/read_write.c
index 74e36586e4d3..e757ef26e4ce 100644
--- a/fs/read_write.c
+++ b/fs/read_write.c
@@ -124,7 +124,7 @@ loff_t default_llseek(struct file *file, loff_t offset, int origin)
124{ 124{
125 loff_t retval; 125 loff_t retval;
126 126
127 lock_kernel(); 127 mutex_lock(&file->f_dentry->d_inode->i_mutex);
128 switch (origin) { 128 switch (origin) {
129 case SEEK_END: 129 case SEEK_END:
130 offset += i_size_read(file->f_path.dentry->d_inode); 130 offset += i_size_read(file->f_path.dentry->d_inode);
@@ -145,7 +145,7 @@ loff_t default_llseek(struct file *file, loff_t offset, int origin)
145 retval = offset; 145 retval = offset;
146 } 146 }
147out: 147out:
148 unlock_kernel(); 148 mutex_unlock(&file->f_dentry->d_inode->i_mutex);
149 return retval; 149 return retval;
150} 150}
151EXPORT_SYMBOL(default_llseek); 151EXPORT_SYMBOL(default_llseek);
@@ -156,7 +156,6 @@ loff_t vfs_llseek(struct file *file, loff_t offset, int origin)
156 156
157 fn = no_llseek; 157 fn = no_llseek;
158 if (file->f_mode & FMODE_LSEEK) { 158 if (file->f_mode & FMODE_LSEEK) {
159 fn = default_llseek;
160 if (file->f_op && file->f_op->llseek) 159 if (file->f_op && file->f_op->llseek)
161 fn = file->f_op->llseek; 160 fn = file->f_op->llseek;
162 } 161 }