On 06/05/2017 17:37, Geliang Tang wrote: > In vm_stat_get_per_vm_fops and vcpu_stat_get_per_vm_fops, since we > use nonseekable_open() to open, we should use no_llseek() to seek, > not generic_file_llseek(). > > Signed-off-by: Geliang Tang <geliangtang@xxxxxxxxx> This is not strictly necessary, nonseekable_open bypasses f_op->llseek due to this code in vfs_llseek: fn = no_llseek; if (file->f_mode & FMODE_LSEEK) { if (file->f_op->llseek) fn = file->f_op->llseek; } return fn(file, offset, whence); But it's a good thing to do anyway, so I'm applying it. Paolo > --- > virt/kvm/kvm_main.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c > index c2bb6ab..798f567 100644 > --- a/virt/kvm/kvm_main.c > +++ b/virt/kvm/kvm_main.c > @@ -3689,7 +3689,7 @@ static const struct file_operations vm_stat_get_per_vm_fops = { > .release = kvm_debugfs_release, > .read = simple_attr_read, > .write = simple_attr_write, > - .llseek = generic_file_llseek, > + .llseek = no_llseek, > }; > > static int vcpu_stat_get_per_vm(void *data, u64 *val) > @@ -3734,7 +3734,7 @@ static const struct file_operations vcpu_stat_get_per_vm_fops = { > .release = kvm_debugfs_release, > .read = simple_attr_read, > .write = simple_attr_write, > - .llseek = generic_file_llseek, > + .llseek = no_llseek, > }; > > static const struct file_operations *stat_fops_per_vm[] = { >