summaryrefslogtreecommitdiffstats
path: root/fs/btrfs/file.c
diff options
context:
space:
mode:
authorChris Mason2008-09-05 22:09:51 +0200
committerChris Mason2008-09-25 17:04:07 +0200
commita1b32a5932cfac7c38b442582285f3da2a09dfd8 (patch)
treed468c51c7391ee1a0cfcc6ff1e76e11c01646efe /fs/btrfs/file.c
parentBtrfs: optimize btrget/set/removexattr (diff)
downloadkernel-qcow2-linux-a1b32a5932cfac7c38b442582285f3da2a09dfd8.tar.gz
kernel-qcow2-linux-a1b32a5932cfac7c38b442582285f3da2a09dfd8.tar.xz
kernel-qcow2-linux-a1b32a5932cfac7c38b442582285f3da2a09dfd8.zip
Btrfs: Add debugging checks to track down corrupted metadata
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs/btrfs/file.c')
-rw-r--r--fs/btrfs/file.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c
index eb8e4556fa71..e9e86fbaa243 100644
--- a/fs/btrfs/file.c
+++ b/fs/btrfs/file.c
@@ -39,9 +39,10 @@
#include "compat.h"
-static int btrfs_copy_from_user(loff_t pos, int num_pages, int write_bytes,
- struct page **prepared_pages,
- const char __user * buf)
+static int noinline btrfs_copy_from_user(loff_t pos, int num_pages,
+ int write_bytes,
+ struct page **prepared_pages,
+ const char __user * buf)
{
long page_fault = 0;
int i;
@@ -69,7 +70,7 @@ static int btrfs_copy_from_user(loff_t pos, int num_pages, int write_bytes,
return page_fault ? -EFAULT : 0;
}
-static void btrfs_drop_pages(struct page **pages, size_t num_pages)
+static void noinline btrfs_drop_pages(struct page **pages, size_t num_pages)
{
size_t i;
for (i = 0; i < num_pages; i++) {
@@ -359,7 +360,7 @@ out_unlock:
return err;
}
-int btrfs_drop_extent_cache(struct inode *inode, u64 start, u64 end)
+int noinline btrfs_drop_extent_cache(struct inode *inode, u64 start, u64 end)
{
struct extent_map *em;
struct extent_map *split = NULL;
@@ -515,7 +516,7 @@ out:
* it is either truncated or split. Anything entirely inside the range
* is deleted from the tree.
*/
-int btrfs_drop_extents(struct btrfs_trans_handle *trans,
+int noinline btrfs_drop_extents(struct btrfs_trans_handle *trans,
struct btrfs_root *root, struct inode *inode,
u64 start, u64 end, u64 inline_limit, u64 *hint_byte)
{
@@ -785,7 +786,7 @@ out:
/*
* this gets pages into the page cache and locks them down
*/
-static int prepare_pages(struct btrfs_root *root, struct file *file,
+static int noinline prepare_pages(struct btrfs_root *root, struct file *file,
struct page **pages, size_t num_pages,
loff_t pos, unsigned long first_index,
unsigned long last_index, size_t write_bytes)