{
        struct inode *inode;
        struct ubifs_info *c = dir->i_sb->s_fs_info;
-       struct ubifs_budget_req req = { .new_ino = 1, .new_dent = 1};
+       struct ubifs_budget_req req = { .new_ino = 1, .new_dent = 1,
+                                       .dirtied_ino = 1};
        struct ubifs_budget_req ino_req = { .dirtied_ino = 1 };
        struct ubifs_inode *ui;
        int err, instantiated = 0;
        struct fscrypt_name nm;
 
        /*
-        * Budget request settings: new dirty inode, new direntry,
-        * budget for dirtied inode will be released via writeback.
+        * Budget request settings: new inode, new direntry, changing the
+        * parent directory inode.
+        * Allocate budget separately for new dirtied inode, the budget will
+        * be released via writeback.
         */
 
        dbg_gen("dent '%pd', mode %#hx in dir ino %lu",
        struct ubifs_inode *dir_ui = ubifs_inode(dir);
        struct ubifs_info *c = dir->i_sb->s_fs_info;
        int err, sz_change;
-       struct ubifs_budget_req req = { .new_ino = 1, .new_dent = 1 };
+       struct ubifs_budget_req req = { .new_ino = 1, .new_dent = 1,
+                                       .dirtied_ino = 1};
        struct fscrypt_name nm;
 
        /*