On Wed, Aug 30, 2017 at 04:59:57PM +0200, Christoph Hellwig wrote: > for (prot = 0; prot < prot_length;) { > sector_t len = min_t(sector_t, bufsize, prot_length - prot); > - ssize_t ret = kernel_write(prot_fd, buf, len, pos + prot); > + ssize_t ret = kernel_write(prot_fd, buf, len, &pos); > > if (ret != len) { > pr_err("vfs_write to prot file failed: %zd\n", ret); > return ret < 0 ? ret : -ENODEV; > } > - prot += ret; > } And that loop will terminate because of...? IOW, the same bug class as in the kernel_read() patch.