]> Pileus Git - ~andy/linux/blobdiff - fs/xfs/linux-2.6/xfs_fs_subr.c
xfs: use xfs_sync_inodes() for device flushing
[~andy/linux] / fs / xfs / linux-2.6 / xfs_fs_subr.c
index 5aeb777769613152297ebacb0d5a9ade99f7f26c..08be36d7326c1ee84830046b2b8a7a0d7a058b8a 100644 (file)
@@ -74,14 +74,14 @@ xfs_flush_pages(
 
        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 = filemap_fdatawait(mapping);
-               if (!ret)
-                       ret = ret2;
+               ret = -filemap_fdatawrite(mapping);
        }
-       return -ret;
+       if (flags & XFS_B_ASYNC)
+               return ret;
+       ret2 = xfs_wait_on_pages(ip, first, last);
+       if (!ret)
+               ret = ret2;
+       return ret;
 }
 
 int