gfs2: Remove inode from ordered write list in gfs2_write_inode()
[linux-2.6-block.git] / fs / gfs2 / super.c
index 50a297b920fcf81e3c04546690c81da578705dae..620be0521866eb2f4eee21d78817b47b24e55104 100644 (file)
@@ -768,6 +768,12 @@ static int gfs2_write_inode(struct inode *inode, struct writeback_control *wbc)
                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;
 }