diff options
author | Jan Kara <jack@suse.cz> | 2017-01-02 14:30:31 +0100 |
---|---|---|
committer | Jan Kara <jack@suse.cz> | 2017-01-05 07:52:57 +0100 |
commit | ad4d05329df5e9825cac3132e12453a6c12915b8 (patch) | |
tree | 56e6acd3b189c2fa6654ee13d1418616de19c7e8 /fs/udf/udfdecl.h | |
parent | fs/udf: make #ifdef UDF_PREALLOCATE unconditional (diff) | |
download | linux-ad4d05329df5e9825cac3132e12453a6c12915b8.tar.xz linux-ad4d05329df5e9825cac3132e12453a6c12915b8.zip |
udf: Make stat on symlink report symlink length as st_size
UDF encodes symlinks in a more complex fashion and thus i_size of a
symlink does not match the lenght of a string returned by readlink(2).
This confuses some applications (see bug 191241) and may be considered a
violation of POSIX. Fix the problem by reading the link into page cache
in response to stat(2) call and report the length of the decoded path.
Signed-off-by: Jan Kara <jack@suse.cz>
Diffstat (limited to 'fs/udf/udfdecl.h')
-rw-r--r-- | fs/udf/udfdecl.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/udf/udfdecl.h b/fs/udf/udfdecl.h index b608624e7089..63b034984378 100644 --- a/fs/udf/udfdecl.h +++ b/fs/udf/udfdecl.h @@ -84,6 +84,7 @@ extern const struct inode_operations udf_dir_inode_operations; extern const struct file_operations udf_dir_operations; extern const struct inode_operations udf_file_inode_operations; extern const struct file_operations udf_file_operations; +extern const struct inode_operations udf_symlink_inode_operations; extern const struct address_space_operations udf_aops; extern const struct address_space_operations udf_adinicb_aops; extern const struct address_space_operations udf_symlink_aops; |