@@ -36,33 +36,31 @@ static struct dentry *minix_lookup(struct inode * dir, struct dentry *dentry, un
3636static int minix_mknod (struct user_namespace * mnt_userns , struct inode * dir ,
3737 struct dentry * dentry , umode_t mode , dev_t rdev )
3838{
39- int error ;
4039 struct inode * inode ;
4140
4241 if (!old_valid_dev (rdev ))
4342 return - EINVAL ;
4443
45- inode = minix_new_inode (dir , mode , & error );
44+ inode = minix_new_inode (dir , mode );
45+ if (IS_ERR (inode ))
46+ return PTR_ERR (inode );
4647
47- if (inode ) {
48- minix_set_inode (inode , rdev );
49- mark_inode_dirty (inode );
50- error = add_nondir (dentry , inode );
51- }
52- return error ;
48+ minix_set_inode (inode , rdev );
49+ mark_inode_dirty (inode );
50+ return add_nondir (dentry , inode );
5351}
5452
5553static int minix_tmpfile (struct user_namespace * mnt_userns , struct inode * dir ,
5654 struct file * file , umode_t mode )
5755{
58- int error ;
59- struct inode * inode = minix_new_inode ( dir , mode , & error );
60- if (inode ) {
61- minix_set_inode ( inode , 0 );
62- mark_inode_dirty (inode );
63- d_tmpfile ( file , inode );
64- }
65- return finish_open_simple (file , error );
56+ struct inode * inode = minix_new_inode ( dir , mode ) ;
57+
58+ if (IS_ERR ( inode ))
59+ return finish_open_simple ( file , PTR_ERR ( inode ) );
60+ minix_set_inode (inode , 0 );
61+ mark_inode_dirty ( inode );
62+ d_tmpfile ( file , inode );
63+ return finish_open_simple (file , 0 );
6664}
6765
6866static int minix_create (struct user_namespace * mnt_userns , struct inode * dir ,
@@ -74,30 +72,25 @@ static int minix_create(struct user_namespace *mnt_userns, struct inode *dir,
7472static int minix_symlink (struct user_namespace * mnt_userns , struct inode * dir ,
7573 struct dentry * dentry , const char * symname )
7674{
77- int err = - ENAMETOOLONG ;
7875 int i = strlen (symname )+ 1 ;
7976 struct inode * inode ;
77+ int err ;
8078
8179 if (i > dir -> i_sb -> s_blocksize )
82- goto out ;
80+ return - ENAMETOOLONG ;
8381
84- inode = minix_new_inode (dir , S_IFLNK | 0777 , & err );
85- if (! inode )
86- goto out ;
82+ inode = minix_new_inode (dir , S_IFLNK | 0777 );
83+ if (IS_ERR ( inode ) )
84+ return PTR_ERR ( inode ) ;
8785
8886 minix_set_inode (inode , 0 );
8987 err = page_symlink (inode , symname , i );
90- if (err )
91- goto out_fail ;
92-
93- err = add_nondir (dentry , inode );
94- out :
95- return err ;
96-
97- out_fail :
98- inode_dec_link_count (inode );
99- iput (inode );
100- goto out ;
88+ if (unlikely (err )) {
89+ inode_dec_link_count (inode );
90+ iput (inode );
91+ return err ;
92+ }
93+ return add_nondir (dentry , inode );
10194}
10295
10396static int minix_link (struct dentry * old_dentry , struct inode * dir ,
@@ -117,14 +110,12 @@ static int minix_mkdir(struct user_namespace *mnt_userns, struct inode *dir,
117110 struct inode * inode ;
118111 int err ;
119112
120- inode_inc_link_count (dir );
121-
122- inode = minix_new_inode (dir , S_IFDIR | mode , & err );
123- if (!inode )
124- goto out_dir ;
113+ inode = minix_new_inode (dir , S_IFDIR | mode );
114+ if (IS_ERR (inode ))
115+ return PTR_ERR (inode );
125116
117+ inode_inc_link_count (dir );
126118 minix_set_inode (inode , 0 );
127-
128119 inode_inc_link_count (inode );
129120
130121 err = minix_make_empty (inode , dir );
@@ -143,7 +134,6 @@ static int minix_mkdir(struct user_namespace *mnt_userns, struct inode *dir,
143134 inode_dec_link_count (inode );
144135 inode_dec_link_count (inode );
145136 iput (inode );
146- out_dir :
147137 inode_dec_link_count (dir );
148138 goto out ;
149139}
0 commit comments