@@ -2436,7 +2436,9 @@ static int ext4_create(struct inode *dir, struct dentry *dentry, umode_t mode,
2436
2436
struct inode * inode ;
2437
2437
int err , credits , retries = 0 ;
2438
2438
2439
- dquot_initialize (dir );
2439
+ err = dquot_initialize (dir );
2440
+ if (err )
2441
+ return err ;
2440
2442
2441
2443
credits = (EXT4_DATA_TRANS_BLOCKS (dir -> i_sb ) +
2442
2444
EXT4_INDEX_EXTRA_TRANS_BLOCKS + 3 );
@@ -2470,7 +2472,9 @@ static int ext4_mknod(struct inode *dir, struct dentry *dentry,
2470
2472
if (!new_valid_dev (rdev ))
2471
2473
return - EINVAL ;
2472
2474
2473
- dquot_initialize (dir );
2475
+ err = dquot_initialize (dir );
2476
+ if (err )
2477
+ return err ;
2474
2478
2475
2479
credits = (EXT4_DATA_TRANS_BLOCKS (dir -> i_sb ) +
2476
2480
EXT4_INDEX_EXTRA_TRANS_BLOCKS + 3 );
@@ -2499,7 +2503,9 @@ static int ext4_tmpfile(struct inode *dir, struct dentry *dentry, umode_t mode)
2499
2503
struct inode * inode ;
2500
2504
int err , retries = 0 ;
2501
2505
2502
- dquot_initialize (dir );
2506
+ err = dquot_initialize (dir );
2507
+ if (err )
2508
+ return err ;
2503
2509
2504
2510
retry :
2505
2511
inode = ext4_new_inode_start_handle (dir , mode ,
@@ -2612,7 +2618,9 @@ static int ext4_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode)
2612
2618
if (EXT4_DIR_LINK_MAX (dir ))
2613
2619
return - EMLINK ;
2614
2620
2615
- dquot_initialize (dir );
2621
+ err = dquot_initialize (dir );
2622
+ if (err )
2623
+ return err ;
2616
2624
2617
2625
credits = (EXT4_DATA_TRANS_BLOCKS (dir -> i_sb ) +
2618
2626
EXT4_INDEX_EXTRA_TRANS_BLOCKS + 3 );
@@ -2910,8 +2918,12 @@ static int ext4_rmdir(struct inode *dir, struct dentry *dentry)
2910
2918
2911
2919
/* Initialize quotas before so that eventual writes go in
2912
2920
* separate transaction */
2913
- dquot_initialize (dir );
2914
- dquot_initialize (d_inode (dentry ));
2921
+ retval = dquot_initialize (dir );
2922
+ if (retval )
2923
+ return retval ;
2924
+ retval = dquot_initialize (d_inode (dentry ));
2925
+ if (retval )
2926
+ return retval ;
2915
2927
2916
2928
retval = - ENOENT ;
2917
2929
bh = ext4_find_entry (dir , & dentry -> d_name , & de , NULL );
@@ -2980,8 +2992,12 @@ static int ext4_unlink(struct inode *dir, struct dentry *dentry)
2980
2992
trace_ext4_unlink_enter (dir , dentry );
2981
2993
/* Initialize quotas before so that eventual writes go
2982
2994
* in separate transaction */
2983
- dquot_initialize (dir );
2984
- dquot_initialize (d_inode (dentry ));
2995
+ retval = dquot_initialize (dir );
2996
+ if (retval )
2997
+ return retval ;
2998
+ retval = dquot_initialize (d_inode (dentry ));
2999
+ if (retval )
3000
+ return retval ;
2985
3001
2986
3002
retval = - ENOENT ;
2987
3003
bh = ext4_find_entry (dir , & dentry -> d_name , & de , NULL );
@@ -3066,7 +3082,9 @@ static int ext4_symlink(struct inode *dir,
3066
3082
goto err_free_sd ;
3067
3083
}
3068
3084
3069
- dquot_initialize (dir );
3085
+ err = dquot_initialize (dir );
3086
+ if (err )
3087
+ return err ;
3070
3088
3071
3089
if ((disk_link .len > EXT4_N_BLOCKS * 4 )) {
3072
3090
/*
@@ -3197,7 +3215,9 @@ static int ext4_link(struct dentry *old_dentry,
3197
3215
if (ext4_encrypted_inode (dir ) &&
3198
3216
!ext4_is_child_context_consistent_with_parent (dir , inode ))
3199
3217
return - EPERM ;
3200
- dquot_initialize (dir );
3218
+ err = dquot_initialize (dir );
3219
+ if (err )
3220
+ return err ;
3201
3221
3202
3222
retry :
3203
3223
handle = ext4_journal_start (dir , EXT4_HT_DIR ,
@@ -3476,13 +3496,20 @@ static int ext4_rename(struct inode *old_dir, struct dentry *old_dentry,
3476
3496
int credits ;
3477
3497
u8 old_file_type ;
3478
3498
3479
- dquot_initialize (old .dir );
3480
- dquot_initialize (new .dir );
3499
+ retval = dquot_initialize (old .dir );
3500
+ if (retval )
3501
+ return retval ;
3502
+ retval = dquot_initialize (new .dir );
3503
+ if (retval )
3504
+ return retval ;
3481
3505
3482
3506
/* Initialize quotas before so that eventual writes go
3483
3507
* in separate transaction */
3484
- if (new .inode )
3485
- dquot_initialize (new .inode );
3508
+ if (new .inode ) {
3509
+ retval = dquot_initialize (new .inode );
3510
+ if (retval )
3511
+ return retval ;
3512
+ }
3486
3513
3487
3514
old .bh = ext4_find_entry (old .dir , & old .dentry -> d_name , & old .de , NULL );
3488
3515
if (IS_ERR (old .bh ))
@@ -3678,8 +3705,12 @@ static int ext4_cross_rename(struct inode *old_dir, struct dentry *old_dentry,
3678
3705
new .inode )))
3679
3706
return - EPERM ;
3680
3707
3681
- dquot_initialize (old .dir );
3682
- dquot_initialize (new .dir );
3708
+ retval = dquot_initialize (old .dir );
3709
+ if (retval )
3710
+ return retval ;
3711
+ retval = dquot_initialize (new .dir );
3712
+ if (retval )
3713
+ return retval ;
3683
3714
3684
3715
old .bh = ext4_find_entry (old .dir , & old .dentry -> d_name ,
3685
3716
& old .de , & old .inlined );
0 commit comments