gfs2: Remove inode from ordered write list in gfs2_write_inode()
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>
This commit is contained in:
@@ -768,6 +768,12 @@ static int gfs2_write_inode(struct inode *inode, struct writeback_control *wbc)
|
|||||||
ret = filemap_fdatawait(metamapping);
|
ret = filemap_fdatawait(metamapping);
|
||||||
if (ret)
|
if (ret)
|
||||||
mark_inode_dirty_sync(inode);
|
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;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user