@@ -36,33 +36,31 @@ static struct dentry *minix_lookup(struct inode * dir, struct dentry *dentry, un
36
36
static int minix_mknod (struct user_namespace * mnt_userns , struct inode * dir ,
37
37
struct dentry * dentry , umode_t mode , dev_t rdev )
38
38
{
39
- int error ;
40
39
struct inode * inode ;
41
40
42
41
if (!old_valid_dev (rdev ))
43
42
return - EINVAL ;
44
43
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 );
46
47
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 );
53
51
}
54
52
55
53
static int minix_tmpfile (struct user_namespace * mnt_userns , struct inode * dir ,
56
54
struct file * file , umode_t mode )
57
55
{
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 );
66
64
}
67
65
68
66
static 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,
74
72
static int minix_symlink (struct user_namespace * mnt_userns , struct inode * dir ,
75
73
struct dentry * dentry , const char * symname )
76
74
{
77
- int err = - ENAMETOOLONG ;
78
75
int i = strlen (symname )+ 1 ;
79
76
struct inode * inode ;
77
+ int err ;
80
78
81
79
if (i > dir -> i_sb -> s_blocksize )
82
- goto out ;
80
+ return - ENAMETOOLONG ;
83
81
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 ) ;
87
85
88
86
minix_set_inode (inode , 0 );
89
87
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 );
101
94
}
102
95
103
96
static 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,
117
110
struct inode * inode ;
118
111
int err ;
119
112
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 );
125
116
117
+ inode_inc_link_count (dir );
126
118
minix_set_inode (inode , 0 );
127
-
128
119
inode_inc_link_count (inode );
129
120
130
121
err = minix_make_empty (inode , dir );
@@ -143,7 +134,6 @@ static int minix_mkdir(struct user_namespace *mnt_userns, struct inode *dir,
143
134
inode_dec_link_count (inode );
144
135
inode_dec_link_count (inode );
145
136
iput (inode );
146
- out_dir :
147
137
inode_dec_link_count (dir );
148
138
goto out ;
149
139
}
0 commit comments