The vfs clears the I_DIRTY inode flag before calling gfs2_write_inode()
having queued any data that needed to be written to disk.
This is a good time to remove such inodes from our ordered write list
so they don't hang around for long periods of time.
Signed-off-by: Abhi Das <adas@redhat.com>
Signed-off-by: Bob Peterson <rpeterso@redhat.com>
                ret = filemap_fdatawait(metamapping);
        if (ret)
                mark_inode_dirty_sync(inode);
+       else {
+               spin_lock(&inode->i_lock);
+               if (!(inode->i_flags & I_DIRTY))
+                       gfs2_ordered_del_inode(ip);
+               spin_unlock(&inode->i_lock);
+       }
        return ret;
 }