fix sysvfs symlinks
authorAl Viro <viro@zeniv.linux.org.uk>
Tue, 24 Nov 2015 02:11:08 +0000 (21:11 -0500)
committerBen Hutchings <ben@decadent.org.uk>
Wed, 30 Dec 2015 02:25:57 +0000 (02:25 +0000)
commit081c769778f7a41f4eb3d633df26ad572575c980
treeb0610348c9b4ab1cd6622d253cc2e72a5da17c78
parenta3b0f6e8a21ef02f69a15abac440572d8cde8c2a
fix sysvfs symlinks

commit 0ebf7f10d67a70e120f365018f1c5fce9ddc567d upstream.

The thing got broken back in 2002 - sysvfs does *not* have inline
symlinks; even short ones have bodies stored in the first block
of file.  sysv_symlink() handles that correctly; unfortunately,
attempting to look an existing symlink up will end up confusing
them for inline symlinks, and interpret the block number containing
the body as the body itself.

Nobody has noticed until now, which says something about the level
of testing sysvfs gets ;-/

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
[bwh: Backported to 3.2:
 - Adjust context
 - Also delete unused sysv_fast_symlink_inode_operations]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
fs/sysv/Makefile
fs/sysv/inode.c
fs/sysv/symlink.c [deleted file]