@@ -200,11 +200,12 @@ static struct dentry *ocfs2_lookup(struct inode *dir, struct dentry *dentry,
200
200
static struct inode * ocfs2_get_init_inode (struct inode * dir , umode_t mode )
201
201
{
202
202
struct inode * inode ;
203
+ int status ;
203
204
204
205
inode = new_inode (dir -> i_sb );
205
206
if (!inode ) {
206
207
mlog (ML_ERROR , "new_inode failed!\n" );
207
- return NULL ;
208
+ return ERR_PTR ( - ENOMEM ) ;
208
209
}
209
210
210
211
/* populate as many fields early on as possible - many of
@@ -213,7 +214,10 @@ static struct inode *ocfs2_get_init_inode(struct inode *dir, umode_t mode)
213
214
if (S_ISDIR (mode ))
214
215
set_nlink (inode , 2 );
215
216
inode_init_owner (inode , dir , mode );
216
- dquot_initialize (inode );
217
+ status = dquot_initialize (inode );
218
+ if (status )
219
+ return ERR_PTR (status );
220
+
217
221
return inode ;
218
222
}
219
223
@@ -264,7 +268,11 @@ static int ocfs2_mknod(struct inode *dir,
264
268
(unsigned long long )OCFS2_I (dir )-> ip_blkno ,
265
269
(unsigned long )dev , mode );
266
270
267
- dquot_initialize (dir );
271
+ status = dquot_initialize (dir );
272
+ if (status ) {
273
+ mlog_errno (status );
274
+ return status ;
275
+ }
268
276
269
277
/* get our super block */
270
278
osb = OCFS2_SB (dir -> i_sb );
@@ -311,8 +319,9 @@ static int ocfs2_mknod(struct inode *dir,
311
319
}
312
320
313
321
inode = ocfs2_get_init_inode (dir , mode );
314
- if (!inode ) {
315
- status = - ENOMEM ;
322
+ if (IS_ERR (inode )) {
323
+ status = PTR_ERR (inode );
324
+ inode = NULL ;
316
325
mlog_errno (status );
317
326
goto leave ;
318
327
}
@@ -708,7 +717,11 @@ static int ocfs2_link(struct dentry *old_dentry,
708
717
if (S_ISDIR (inode -> i_mode ))
709
718
return - EPERM ;
710
719
711
- dquot_initialize (dir );
720
+ err = dquot_initialize (dir );
721
+ if (err ) {
722
+ mlog_errno (err );
723
+ return err ;
724
+ }
712
725
713
726
err = ocfs2_double_lock (osb , & old_dir_bh , old_dir ,
714
727
& parent_fe_bh , dir , 0 );
@@ -896,7 +909,11 @@ static int ocfs2_unlink(struct inode *dir,
896
909
(unsigned long long )OCFS2_I (dir )-> ip_blkno ,
897
910
(unsigned long long )OCFS2_I (inode )-> ip_blkno );
898
911
899
- dquot_initialize (dir );
912
+ status = dquot_initialize (dir );
913
+ if (status ) {
914
+ mlog_errno (status );
915
+ return status ;
916
+ }
900
917
901
918
BUG_ON (d_inode (dentry -> d_parent ) != dir );
902
919
@@ -1230,8 +1247,16 @@ static int ocfs2_rename(struct inode *old_dir,
1230
1247
old_dentry -> d_name .len , old_dentry -> d_name .name ,
1231
1248
new_dentry -> d_name .len , new_dentry -> d_name .name );
1232
1249
1233
- dquot_initialize (old_dir );
1234
- dquot_initialize (new_dir );
1250
+ status = dquot_initialize (old_dir );
1251
+ if (status ) {
1252
+ mlog_errno (status );
1253
+ goto bail ;
1254
+ }
1255
+ status = dquot_initialize (new_dir );
1256
+ if (status ) {
1257
+ mlog_errno (status );
1258
+ goto bail ;
1259
+ }
1235
1260
1236
1261
osb = OCFS2_SB (old_dir -> i_sb );
1237
1262
@@ -1786,7 +1811,11 @@ static int ocfs2_symlink(struct inode *dir,
1786
1811
trace_ocfs2_symlink_begin (dir , dentry , symname ,
1787
1812
dentry -> d_name .len , dentry -> d_name .name );
1788
1813
1789
- dquot_initialize (dir );
1814
+ status = dquot_initialize (dir );
1815
+ if (status ) {
1816
+ mlog_errno (status );
1817
+ goto bail ;
1818
+ }
1790
1819
1791
1820
sb = dir -> i_sb ;
1792
1821
osb = OCFS2_SB (sb );
@@ -1831,8 +1860,9 @@ static int ocfs2_symlink(struct inode *dir,
1831
1860
}
1832
1861
1833
1862
inode = ocfs2_get_init_inode (dir , S_IFLNK | S_IRWXUGO );
1834
- if (!inode ) {
1835
- status = - ENOMEM ;
1863
+ if (IS_ERR (inode )) {
1864
+ status = PTR_ERR (inode );
1865
+ inode = NULL ;
1836
1866
mlog_errno (status );
1837
1867
goto bail ;
1838
1868
}
@@ -2485,8 +2515,9 @@ int ocfs2_create_inode_in_orphan(struct inode *dir,
2485
2515
}
2486
2516
2487
2517
inode = ocfs2_get_init_inode (dir , mode );
2488
- if (!inode ) {
2489
- status = - ENOMEM ;
2518
+ if (IS_ERR (inode )) {
2519
+ status = PTR_ERR (inode );
2520
+ inode = NULL ;
2490
2521
mlog_errno (status );
2491
2522
goto leave ;
2492
2523
}
0 commit comments