KFS allows seeks beyond the file size
authorBarret Rhoden <brho@cs.berkeley.edu>
Thu, 14 Aug 2014 16:46:25 +0000 (09:46 -0700)
committerBarret Rhoden <brho@cs.berkeley.edu>
Thu, 14 Aug 2014 16:46:25 +0000 (09:46 -0700)
It looks like the VFS writes, page cache, and KFS readpage() can all handle the
offset being higher than the file size, and it should create a hole.

kern/src/kfs.c

index 4584312..be9d470 100644 (file)
@@ -550,9 +550,6 @@ int kfs_llseek(struct file *file, off64_t offset, off64_t *ret, int whence)
                        warn("Unknown 'whence' in llseek()!\n");
                        return -1;
        }
-       /* make sure the f_pos isn't outside the limits of the existing file.
-        * techincally, if they go too far, we should return EINVAL */
-       temp_off = MAX(MIN(temp_off, file->f_dentry->d_inode->i_size), 0);
        file->f_pos = temp_off;
        *ret = temp_off;
        return 0;