diff mbox series

[RFC,v4,02/09] ufs: use fs_umode_to_dtype() helper

Message ID 20181121190650.GA7696@pathfinder (mailing list archive)
State New, archived
Headers show
Series [RFC,v4,01/09] fs: common implementation of file type | expand

Commit Message

Phillip Potter Nov. 21, 2018, 7:06 p.m. UTC
Replace switch statement with common lookup table implementation - file
systems that use the same file types as defined by POSIX do not need to
define their own versions and can use the common helper functions
decared in fs_types.h and implemented in fs_types.c

Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Phillip Potter <phil@philpotter.co.uk>
---
 fs/ufs/util.h | 29 +----------------------------
 1 file changed, 1 insertion(+), 28 deletions(-)

Comments

Jan Kara Nov. 22, 2018, 11:41 a.m. UTC | #1
On Wed 21-11-18 19:06:50, Phillip Potter wrote:
> Replace switch statement with common lookup table implementation - file
> systems that use the same file types as defined by POSIX do not need to
> define their own versions and can use the common helper functions
> decared in fs_types.h and implemented in fs_types.c
> 
> Signed-off-by: Amir Goldstein <amir73il@gmail.com>
> Signed-off-by: Phillip Potter <phil@philpotter.co.uk>
> ---
>  fs/ufs/util.h | 29 +----------------------------
>  1 file changed, 1 insertion(+), 28 deletions(-)

Looks good. You can add:

Reviewed-by: Jan Kara <jack@suse.cz>

								Honza

> 
> diff --git a/fs/ufs/util.h b/fs/ufs/util.h
> index 1fd3011ea623..8c7759860739 100644
> --- a/fs/ufs/util.h
> +++ b/fs/ufs/util.h
> @@ -158,34 +158,7 @@ ufs_set_de_type(struct super_block *sb, struct ufs_dir_entry *de, int mode)
>  	if ((UFS_SB(sb)->s_flags & UFS_DE_MASK) != UFS_DE_44BSD)
>  		return;
>  
> -	/*
> -	 * TODO turn this into a table lookup
> -	 */
> -	switch (mode & S_IFMT) {
> -	case S_IFSOCK:
> -		de->d_u.d_44.d_type = DT_SOCK;
> -		break;
> -	case S_IFLNK:
> -		de->d_u.d_44.d_type = DT_LNK;
> -		break;
> -	case S_IFREG:
> -		de->d_u.d_44.d_type = DT_REG;
> -		break;
> -	case S_IFBLK:
> -		de->d_u.d_44.d_type = DT_BLK;
> -		break;
> -	case S_IFDIR:
> -		de->d_u.d_44.d_type = DT_DIR;
> -		break;
> -	case S_IFCHR:
> -		de->d_u.d_44.d_type = DT_CHR;
> -		break;
> -	case S_IFIFO:
> -		de->d_u.d_44.d_type = DT_FIFO;
> -		break;
> -	default:
> -		de->d_u.d_44.d_type = DT_UNKNOWN;
> -	}
> +	de->d_u.d_44.d_type = fs_umode_to_dtype(mode);
>  }
>  
>  static inline u32
> -- 
> 2.19.1
>
diff mbox series

Patch

diff --git a/fs/ufs/util.h b/fs/ufs/util.h
index 1fd3011ea623..8c7759860739 100644
--- a/fs/ufs/util.h
+++ b/fs/ufs/util.h
@@ -158,34 +158,7 @@  ufs_set_de_type(struct super_block *sb, struct ufs_dir_entry *de, int mode)
 	if ((UFS_SB(sb)->s_flags & UFS_DE_MASK) != UFS_DE_44BSD)
 		return;
 
-	/*
-	 * TODO turn this into a table lookup
-	 */
-	switch (mode & S_IFMT) {
-	case S_IFSOCK:
-		de->d_u.d_44.d_type = DT_SOCK;
-		break;
-	case S_IFLNK:
-		de->d_u.d_44.d_type = DT_LNK;
-		break;
-	case S_IFREG:
-		de->d_u.d_44.d_type = DT_REG;
-		break;
-	case S_IFBLK:
-		de->d_u.d_44.d_type = DT_BLK;
-		break;
-	case S_IFDIR:
-		de->d_u.d_44.d_type = DT_DIR;
-		break;
-	case S_IFCHR:
-		de->d_u.d_44.d_type = DT_CHR;
-		break;
-	case S_IFIFO:
-		de->d_u.d_44.d_type = DT_FIFO;
-		break;
-	default:
-		de->d_u.d_44.d_type = DT_UNKNOWN;
-	}
+	de->d_u.d_44.d_type = fs_umode_to_dtype(mode);
 }
 
 static inline u32