hc
2024-02-20 102a0743326a03cd1a1202ceda21e175b7d3575c
kernel/fs/ubifs/file.c
....@@ -1031,7 +1031,7 @@
10311031 if (page->index >= synced_i_size >> PAGE_SHIFT) {
10321032 err = inode->i_sb->s_op->write_inode(inode, NULL);
10331033 if (err)
1034
- goto out_unlock;
1034
+ goto out_redirty;
10351035 /*
10361036 * The inode has been written, but the write-buffer has
10371037 * not been synchronized, so in case of an unclean
....@@ -1059,11 +1059,17 @@
10591059 if (i_size > synced_i_size) {
10601060 err = inode->i_sb->s_op->write_inode(inode, NULL);
10611061 if (err)
1062
- goto out_unlock;
1062
+ goto out_redirty;
10631063 }
10641064
10651065 return do_writepage(page, len);
1066
-
1066
+out_redirty:
1067
+ /*
1068
+ * redirty_page_for_writepage() won't call ubifs_dirty_inode() because
1069
+ * it passes I_DIRTY_PAGES flag while calling __mark_inode_dirty(), so
1070
+ * there is no need to do space budget for dirty inode.
1071
+ */
1072
+ redirty_page_for_writepage(wbc, page);
10671073 out_unlock:
10681074 unlock_page(page);
10691075 return err;