• Eric Sandeen's avatar
    vfs: allow custom EOF in generic_file_llseek code · e8b96eb5
    Eric Sandeen authored
    For ext3/4 htree directories, using the vfs llseek function with
    SEEK_END goes to i_size like for any other file, but in reality
    we want the maximum possible hash value.  Recent changes
    in ext4 have cut & pasted generic_file_llseek() back into fs/ext4/dir.c,
    but replicating this core code seems like a bad idea, especially
    since the copy has already diverged from the vfs.
    
    This patch updates generic_file_llseek_size to accept
    both a custom maximum offset, and a custom EOF position.  With this
    in place, ext4_dir_llseek can pass in the appropriate maximum hash
    position for both maxsize and eof, and get what it wants.
    
    As far as I know, this does not fix any bugs - nfs in the kernel
    doesn't use SEEK_END, and I don't know of any user who does.  But
    some ext4 folks seem keen on doing the right thing here, and I can't
    really argue.
    
    (Patch also fixes up some comments slightly)
    Signed-off-by: default avatarEric Sandeen <sandeen@redhat.com>
    Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
    e8b96eb5
file.c 7.29 KB