diff options
author | Russell King <rmk+kernel@armlinux.org.uk> | 2019-03-24 14:08:41 +0100 |
---|---|---|
committer | Russell King <rmk+kernel@armlinux.org.uk> | 2019-05-31 11:31:05 +0200 |
commit | 5f8de4875c3522addcde6e98f978e0414c16478d (patch) | |
tree | 867a72191974d33515dce83e1bc45d03339b3c0f /fs/adfs | |
parent | fs/adfs: remove truncated filename hashing (diff) | |
download | linux-5f8de4875c3522addcde6e98f978e0414c16478d.tar.xz linux-5f8de4875c3522addcde6e98f978e0414c16478d.zip |
fs/adfs: move append_filetype_suffix() into adfs_object_fixup()
append_filetype_suffix() is now only used in adfs_object_fixup(), so
move it there.
Acked-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
Diffstat (limited to 'fs/adfs')
-rw-r--r-- | fs/adfs/adfs.h | 13 | ||||
-rw-r--r-- | fs/adfs/dir.c | 13 |
2 files changed, 8 insertions, 18 deletions
diff --git a/fs/adfs/adfs.h b/fs/adfs/adfs.h index 1097bee65fa9..804c6a77c5db 100644 --- a/fs/adfs/adfs.h +++ b/fs/adfs/adfs.h @@ -113,19 +113,6 @@ struct object_info { __u16 filetype; }; -/* RISC OS 12-bit filetype converts to ,xyz hex filename suffix */ -static inline int append_filetype_suffix(char *buf, __u16 filetype) -{ - if (filetype == 0xffff) /* no explicit 12-bit file type was set */ - return 0; - - *buf++ = ','; - *buf++ = hex_asc_lo(filetype >> 8); - *buf++ = hex_asc_lo(filetype >> 4); - *buf++ = hex_asc_lo(filetype >> 0); - return 4; -} - struct adfs_dir_ops { int (*read)(struct super_block *sb, unsigned int id, unsigned int sz, struct adfs_dir *dir); int (*setpos)(struct adfs_dir *dir, unsigned int fpos); diff --git a/fs/adfs/dir.c b/fs/adfs/dir.c index 5d88108339df..51ed80ff10a5 100644 --- a/fs/adfs/dir.c +++ b/fs/adfs/dir.c @@ -42,11 +42,14 @@ void adfs_object_fixup(struct adfs_dir *dir, struct object_info *obj) obj->filetype = (__u16) ((0x000fff00 & obj->loadaddr) >> 8); /* optionally append the ,xyz hex filetype suffix */ - if (ADFS_SB(dir->sb)->s_ftsuffix) - obj->name_len += - append_filetype_suffix( - &obj->name[obj->name_len], - obj->filetype); + if (ADFS_SB(dir->sb)->s_ftsuffix) { + __u16 filetype = obj->filetype; + + obj->name[obj->name_len++] = ','; + obj->name[obj->name_len++] = hex_asc_lo(filetype >> 8); + obj->name[obj->name_len++] = hex_asc_lo(filetype >> 4); + obj->name[obj->name_len++] = hex_asc_lo(filetype >> 0); + } } } |