|
@@ -124,7 +124,7 @@ loff_t default_llseek(struct file *file, loff_t offset, int origin)
|
|
{
|
|
{
|
|
loff_t retval;
|
|
loff_t retval;
|
|
|
|
|
|
- lock_kernel();
|
|
|
|
|
|
+ mutex_lock(&file->f_dentry->d_inode->i_mutex);
|
|
switch (origin) {
|
|
switch (origin) {
|
|
case SEEK_END:
|
|
case SEEK_END:
|
|
offset += i_size_read(file->f_path.dentry->d_inode);
|
|
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)
|
|
retval = offset;
|
|
retval = offset;
|
|
}
|
|
}
|
|
out:
|
|
out:
|
|
- unlock_kernel();
|
|
|
|
|
|
+ mutex_unlock(&file->f_dentry->d_inode->i_mutex);
|
|
return retval;
|
|
return retval;
|
|
}
|
|
}
|
|
EXPORT_SYMBOL(default_llseek);
|
|
EXPORT_SYMBOL(default_llseek);
|