@@ -56,11 +56,9 @@ static struct dentry *ufs_lookup(struct inode * dir, struct dentry *dentry, unsi
56
56
if (dentry -> d_name .len > UFS_MAXNAMLEN )
57
57
return ERR_PTR (- ENAMETOOLONG );
58
58
59
- lock_ufs (dir -> i_sb );
60
59
ino = ufs_inode_by_name (dir , & dentry -> d_name );
61
60
if (ino )
62
61
inode = ufs_iget (dir -> i_sb , ino );
63
- unlock_ufs (dir -> i_sb );
64
62
return d_splice_alias (inode , dentry );
65
63
}
66
64
@@ -76,24 +74,16 @@ static int ufs_create (struct inode * dir, struct dentry * dentry, umode_t mode,
76
74
bool excl )
77
75
{
78
76
struct inode * inode ;
79
- int err ;
80
-
81
- UFSD ("BEGIN\n" );
82
77
83
78
inode = ufs_new_inode (dir , mode );
84
- err = PTR_ERR (inode );
79
+ if (IS_ERR (inode ))
80
+ return PTR_ERR (inode );
85
81
86
- if (!IS_ERR (inode )) {
87
- inode -> i_op = & ufs_file_inode_operations ;
88
- inode -> i_fop = & ufs_file_operations ;
89
- inode -> i_mapping -> a_ops = & ufs_aops ;
90
- mark_inode_dirty (inode );
91
- lock_ufs (dir -> i_sb );
92
- err = ufs_add_nondir (dentry , inode );
93
- unlock_ufs (dir -> i_sb );
94
- }
95
- UFSD ("END: err=%d\n" , err );
96
- return err ;
82
+ inode -> i_op = & ufs_file_inode_operations ;
83
+ inode -> i_fop = & ufs_file_operations ;
84
+ inode -> i_mapping -> a_ops = & ufs_aops ;
85
+ mark_inode_dirty (inode );
86
+ return ufs_add_nondir (dentry , inode );
97
87
}
98
88
99
89
static int ufs_mknod (struct inode * dir , struct dentry * dentry , umode_t mode , dev_t rdev )
@@ -110,9 +100,7 @@ static int ufs_mknod(struct inode *dir, struct dentry *dentry, umode_t mode, dev
110
100
init_special_inode (inode , mode , rdev );
111
101
ufs_set_inode_dev (inode -> i_sb , UFS_I (inode ), rdev );
112
102
mark_inode_dirty (inode );
113
- lock_ufs (dir -> i_sb );
114
103
err = ufs_add_nondir (dentry , inode );
115
- unlock_ufs (dir -> i_sb );
116
104
}
117
105
return err ;
118
106
}
@@ -121,18 +109,17 @@ static int ufs_symlink (struct inode * dir, struct dentry * dentry,
121
109
const char * symname )
122
110
{
123
111
struct super_block * sb = dir -> i_sb ;
124
- int err = - ENAMETOOLONG ;
112
+ int err ;
125
113
unsigned l = strlen (symname )+ 1 ;
126
114
struct inode * inode ;
127
115
128
116
if (l > sb -> s_blocksize )
129
- goto out_notlocked ;
117
+ return - ENAMETOOLONG ;
130
118
131
- lock_ufs (dir -> i_sb );
132
119
inode = ufs_new_inode (dir , S_IFLNK | S_IRWXUGO );
133
120
err = PTR_ERR (inode );
134
121
if (IS_ERR (inode ))
135
- goto out ;
122
+ return err ;
136
123
137
124
if (l > UFS_SB (sb )-> s_uspi -> s_maxsymlinklen ) {
138
125
/* slow symlink */
@@ -149,17 +136,13 @@ static int ufs_symlink (struct inode * dir, struct dentry * dentry,
149
136
}
150
137
mark_inode_dirty (inode );
151
138
152
- err = ufs_add_nondir (dentry , inode );
153
- out :
154
- unlock_ufs (dir -> i_sb );
155
- out_notlocked :
156
- return err ;
139
+ return ufs_add_nondir (dentry , inode );
157
140
158
141
out_fail :
159
142
inode_dec_link_count (inode );
160
143
unlock_new_inode (inode );
161
144
iput (inode );
162
- goto out ;
145
+ return err ;
163
146
}
164
147
165
148
static int ufs_link (struct dentry * old_dentry , struct inode * dir ,
@@ -168,8 +151,6 @@ static int ufs_link (struct dentry * old_dentry, struct inode * dir,
168
151
struct inode * inode = d_inode (old_dentry );
169
152
int error ;
170
153
171
- lock_ufs (dir -> i_sb );
172
-
173
154
inode -> i_ctime = CURRENT_TIME_SEC ;
174
155
inode_inc_link_count (inode );
175
156
ihold (inode );
@@ -180,7 +161,6 @@ static int ufs_link (struct dentry * old_dentry, struct inode * dir,
180
161
iput (inode );
181
162
} else
182
163
d_instantiate (dentry , inode );
183
- unlock_ufs (dir -> i_sb );
184
164
return error ;
185
165
}
186
166
@@ -189,7 +169,6 @@ static int ufs_mkdir(struct inode * dir, struct dentry * dentry, umode_t mode)
189
169
struct inode * inode ;
190
170
int err ;
191
171
192
- lock_ufs (dir -> i_sb );
193
172
inode_inc_link_count (dir );
194
173
195
174
inode = ufs_new_inode (dir , S_IFDIR |mode );
@@ -210,12 +189,10 @@ static int ufs_mkdir(struct inode * dir, struct dentry * dentry, umode_t mode)
210
189
err = ufs_add_link (dentry , inode );
211
190
if (err )
212
191
goto out_fail ;
213
- unlock_ufs (dir -> i_sb );
214
192
215
193
unlock_new_inode (inode );
216
194
d_instantiate (dentry , inode );
217
- out :
218
- return err ;
195
+ return 0 ;
219
196
220
197
out_fail :
221
198
inode_dec_link_count (inode );
@@ -224,8 +201,7 @@ static int ufs_mkdir(struct inode * dir, struct dentry * dentry, umode_t mode)
224
201
iput (inode );
225
202
out_dir :
226
203
inode_dec_link_count (dir );
227
- unlock_ufs (dir -> i_sb );
228
- goto out ;
204
+ return err ;
229
205
}
230
206
231
207
static int ufs_unlink (struct inode * dir , struct dentry * dentry )
@@ -255,7 +231,6 @@ static int ufs_rmdir (struct inode * dir, struct dentry *dentry)
255
231
struct inode * inode = d_inode (dentry );
256
232
int err = - ENOTEMPTY ;
257
233
258
- lock_ufs (dir -> i_sb );
259
234
if (ufs_empty_dir (inode )) {
260
235
err = ufs_unlink (dir , dentry );
261
236
if (!err ) {
@@ -264,7 +239,6 @@ static int ufs_rmdir (struct inode * dir, struct dentry *dentry)
264
239
inode_dec_link_count (dir );
265
240
}
266
241
}
267
- unlock_ufs (dir -> i_sb );
268
242
return err ;
269
243
}
270
244
0 commit comments