]> err.no Git - linux-2.6/commitdiff
[XFS] Add a chunk of tracing code to diagnose truncate related issues.
authorNathan Scott <nathans@sgi.com>
Fri, 2 Sep 2005 06:40:17 +0000 (16:40 +1000)
committerNathan Scott <nathans@sgi.com>
Fri, 2 Sep 2005 06:40:17 +0000 (16:40 +1000)
SGI-PV: 938410
SGI-Modid: xfs-linux:xfs-kern:22966a

Signed-off-by: Nathan Scott <nathans@sgi.com>
fs/xfs/linux-2.6/xfs_aops.c
fs/xfs/linux-2.6/xfs_lrw.h

index a3a4b5aaf5d985020672a47e0c6858a21b190ad4..bd9aba1f23538a3c2af01ceaac28def63d8db6f6 100644 (file)
@@ -1202,6 +1202,16 @@ out_unlock:
        return error;
 }
 
+STATIC int
+linvfs_invalidate_page(
+       struct page             *page,
+       unsigned long           offset)
+{
+       xfs_page_trace(XFS_INVALIDPAGE_ENTER,
+                       page->mapping->host, page, offset);
+       return block_invalidatepage(page, offset);
+}
+
 /*
  * Called to move a page into cleanable state - and from there
  * to be released. Possibly the page is already clean. We always
@@ -1279,6 +1289,7 @@ struct address_space_operations linvfs_aops = {
        .writepage              = linvfs_writepage,
        .sync_page              = block_sync_page,
        .releasepage            = linvfs_release_page,
+       .invalidatepage         = linvfs_invalidate_page,
        .prepare_write          = linvfs_prepare_write,
        .commit_write           = generic_commit_write,
        .bmap                   = linvfs_bmap,
index f197a720e394db5b1bca538a3f826882cc3b7f46..6294dcdb797cc97ae98b7e24aebed23292a6f2f4 100644 (file)
@@ -70,9 +70,10 @@ struct xfs_iomap;
 #define        XFS_SENDFILE_ENTER      21
 #define        XFS_WRITEPAGE_ENTER     22
 #define        XFS_RELEASEPAGE_ENTER   23
-#define        XFS_IOMAP_ALLOC_ENTER   24
-#define        XFS_IOMAP_ALLOC_MAP     25
-#define        XFS_IOMAP_UNWRITTEN     26
+#define        XFS_INVALIDPAGE_ENTER   24
+#define        XFS_IOMAP_ALLOC_ENTER   25
+#define        XFS_IOMAP_ALLOC_MAP     26
+#define        XFS_IOMAP_UNWRITTEN     27
 extern void xfs_rw_enter_trace(int, struct xfs_iocore *,
                                void *, size_t, loff_t, int);
 extern void xfs_inval_cached_trace(struct xfs_iocore *,