fs: ext4: Add support for the creation of symbolic links
authorJean-Jacques Hiblot <jjhiblot@ti.com>
Wed, 13 Feb 2019 11:15:25 +0000 (12:15 +0100)
committerTom Rini <trini@konsulko.com>
Wed, 10 Apr 2019 00:03:30 +0000 (20:03 -0400)
commit5efc0686eebc0c0daabfbfc2c403f8251b468526
tree2eaa0660c0f9f303086f03e9765244493c0b5431
parentb000180b0f467851525aae3d0dfb8ab3a9dbcf8f
fs: ext4: Add support for the creation of symbolic links

Re-use the functions used to write/create a file, to support creation of a
symbolic link.
The difference with a regular file are small:
- The inode mode is flagged with S_IFLNK instead of S_IFREG
- The ext2_dirent's filetype is FILETYPE_SYMLINK instead of FILETYPE_REG
- Instead of storing the content of a file in allocated blocks, the path
to the target is stored. And if the target's path is short enough, no block
is allocated and the target's path is stored in ext2_inode.b.symlink

As with regulars files, if a file/symlink with the same name exits, it is
unlinked first and then re-created.

Signed-off-by: Jean-Jacques Hiblot <jjhiblot@ti.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
[trini: Fix ext4 env code]
Signed-off-by: Tom Rini <trini@konsulko.com>
env/ext4.c
fs/ext4/ext4_common.c
fs/ext4/ext4_write.c
include/ext4fs.h