|
@@ -1058,10 +1058,21 @@ static int sysfs_readdir(struct file * filp, void * dirent, filldir_t filldir)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
+static loff_t sysfs_dir_llseek(struct file *file, loff_t offset, int whence)
|
|
|
+{
|
|
|
+ struct inode *inode = file_inode(file);
|
|
|
+ loff_t ret;
|
|
|
+
|
|
|
+ mutex_lock(&inode->i_mutex);
|
|
|
+ ret = generic_file_llseek(file, offset, whence);
|
|
|
+ mutex_unlock(&inode->i_mutex);
|
|
|
+
|
|
|
+ return ret;
|
|
|
+}
|
|
|
|
|
|
const struct file_operations sysfs_dir_operations = {
|
|
|
.read = generic_read_dir,
|
|
|
.readdir = sysfs_readdir,
|
|
|
.release = sysfs_dir_release,
|
|
|
- .llseek = generic_file_llseek,
|
|
|
+ .llseek = sysfs_dir_llseek,
|
|
|
};
|