|
@@ -112,6 +112,17 @@ static int f2fs_drop_inode(struct inode *inode)
|
|
|
return generic_drop_inode(inode);
|
|
|
}
|
|
|
|
|
|
+/*
|
|
|
+ * f2fs_dirty_inode() is called from __mark_inode_dirty()
|
|
|
+ *
|
|
|
+ * We should call set_dirty_inode to write the dirty inode through write_inode.
|
|
|
+ */
|
|
|
+static void f2fs_dirty_inode(struct inode *inode, int flags)
|
|
|
+{
|
|
|
+ set_inode_flag(F2FS_I(inode), FI_DIRTY_INODE);
|
|
|
+ return;
|
|
|
+}
|
|
|
+
|
|
|
static void f2fs_i_callback(struct rcu_head *head)
|
|
|
{
|
|
|
struct inode *inode = container_of(head, struct inode, i_rcu);
|
|
@@ -249,6 +260,7 @@ static struct super_operations f2fs_sops = {
|
|
|
.drop_inode = f2fs_drop_inode,
|
|
|
.destroy_inode = f2fs_destroy_inode,
|
|
|
.write_inode = f2fs_write_inode,
|
|
|
+ .dirty_inode = f2fs_dirty_inode,
|
|
|
.show_options = f2fs_show_options,
|
|
|
.evict_inode = f2fs_evict_inode,
|
|
|
.put_super = f2fs_put_super,
|