diff -NurpP --minimal linux-2.6.16-rc5-vs2.1.1-rc10/fs/read_write.c linux-2.6.16-rc5-vs2.1.1-rc10-sendfile/fs/read_write.c --- linux-2.6.16-rc5-vs2.1.1-rc10/fs/read_write.c 2006-03-08 16:12:35.000000000 +0100 +++ linux-2.6.16-rc5-vs2.1.1-rc10-sendfile/fs/read_write.c 2006-03-08 16:22:15.000000000 +0100 @@ -657,8 +657,9 @@ ssize_t vfs_sendfile(struct file *out_fi return -ESPIPE; ret = rw_verify_area(FLOCK_VERIFY_READ, in_file, ppos, count); - if (ret) + if (ret < 0) return ret; + count = ret; /* verify out_file */ out_inode = out_file->f_dentry->d_inode; @@ -668,8 +669,9 @@ ssize_t vfs_sendfile(struct file *out_fi return -EINVAL; ret = rw_verify_area(FLOCK_VERIFY_WRITE, out_file, &out_file->f_pos, count); - if (ret) + if (ret < 0) return ret; + count = ret; ret = security_file_permission (out_file, MAY_WRITE); if (ret)