| To: | Alexander Beregalov <a.beregalov@xxxxxxxxx> |
|---|---|
| Subject: | Re: 2.6.30-06725: xfs_fsr: Assertion failed: ip->i_delayed_blks == 0, file: fs/xfs/xfs_bmap.c, line: 5991 |
| From: | Christoph Hellwig <hch@xxxxxxxxxxxxx> |
| Date: | Thu, 18 Jun 2009 16:51:02 -0400 |
| Cc: | xfs@xxxxxxxxxxx |
| In-reply-to: | <a4423d670906181231r7388df5am394bc55508272b3@xxxxxxxxxxxxxx> |
| References: | <a4423d670906181231r7388df5am394bc55508272b3@xxxxxxxxxxxxxx> |
| User-agent: | Mutt/1.5.18 (2008-05-17) |
Did this happens once or multiple times? It seems that for some
reason xfs_flush_pages didn't flush all delalloc space and then
we rightfully hit this assertation.
I really hate the code in xfs_flush_pages with the optimizations it
tries to apply. Can you give the patch below which removes the
optimizations and uses some more core VM code instead of doing our
own thing?
Index: xfs/fs/xfs/linux-2.6/xfs_fs_subr.c
===================================================================
--- xfs.orig/fs/xfs/linux-2.6/xfs_fs_subr.c 2009-06-18 22:48:01.469815342
+0200
+++ xfs/fs/xfs/linux-2.6/xfs_fs_subr.c 2009-06-18 22:49:08.296815058 +0200
@@ -68,20 +68,12 @@ xfs_flush_pages(
uint64_t flags,
int fiopt)
{
- struct address_space *mapping = VFS_I(ip)->i_mapping;
- int ret = 0;
- int ret2;
+ xfs_iflags_clear(ip, XFS_ITRUNCATED);
- if (mapping_tagged(mapping, PAGECACHE_TAG_DIRTY)) {
- xfs_iflags_clear(ip, XFS_ITRUNCATED);
- ret = -filemap_fdatawrite(mapping);
- }
if (flags & XFS_B_ASYNC)
- return ret;
- ret2 = xfs_wait_on_pages(ip, first, last);
- if (!ret)
- ret = ret2;
- return ret;
+ return -filemap_fdatawrite(VFS_I(ip)->i_mapping);
+ else
+ return -filemap_write_and_wait(VFS_I(ip)->i_mapping);
}
int
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | 2.6.30-06725: xfs_fsr: Assertion failed: ip->i_delayed_blks == 0, file: fs/xfs/xfs_bmap.c, line: 5991, Alexander Beregalov |
|---|---|
| Next by Date: | Re: 2.6.30-06725: xfs_fsr: Assertion failed: ip->i_delayed_blks == 0, file: fs/xfs/xfs_bmap.c, line: 5991, Alexander Beregalov |
| Previous by Thread: | 2.6.30-06725: xfs_fsr: Assertion failed: ip->i_delayed_blks == 0, file: fs/xfs/xfs_bmap.c, line: 5991, Alexander Beregalov |
| Next by Thread: | Re: 2.6.30-06725: xfs_fsr: Assertion failed: ip->i_delayed_blks == 0, file: fs/xfs/xfs_bmap.c, line: 5991, Alexander Beregalov |
| Indexes: | [Date] [Thread] [Top] [All Lists] |