summaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorChris Mason <chris.mason@oracle.com>2007-07-25 18:31:35 +0200
committerDavid Woodhouse <dwmw2@hera.kernel.org>2007-07-25 18:31:35 +0200
commit92fee66d49b812ea57eae53c5baaf8942ac9af06 (patch)
tree48668d45038a0d53a647623b2782e35090d1e7ee /fs
parentBtrfs: Implement mknod (diff)
downloadlinux-92fee66d49b812ea57eae53c5baaf8942ac9af06.tar.xz
linux-92fee66d49b812ea57eae53c5baaf8942ac9af06.zip
Btrfs: deal with api changes in 2.6.23-rc1
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to '')
-rw-r--r--fs/btrfs/file.c9
-rw-r--r--fs/btrfs/inode.c50
2 files changed, 33 insertions, 26 deletions
diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c
index f327525f541d..1fe38fe84150 100644
--- a/fs/btrfs/file.c
+++ b/fs/btrfs/file.c
@@ -30,6 +30,7 @@
#include <linux/writeback.h>
#include <linux/statfs.h>
#include <linux/compat.h>
+#include <linux/version.h>
#include "ctree.h"
#include "disk-io.h"
#include "transaction.h"
@@ -713,8 +714,12 @@ out:
}
static struct vm_operations_struct btrfs_file_vm_ops = {
- .nopage = filemap_nopage,
- .populate = filemap_populate,
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23)
+ .nopage = filemap_nopage,
+ .populate = filemap_populate,
+#else
+ .fault = filemap_fault,
+#endif
.page_mkwrite = btrfs_page_mkwrite,
};
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index f95cf5d4a69d..fa9c531c86b7 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -31,6 +31,7 @@
#include <linux/statfs.h>
#include <linux/compat.h>
#include <linux/bit_spinlock.h>
+#include <linux/version.h>
#include "ctree.h"
#include "disk-io.h"
#include "transaction.h"
@@ -2323,42 +2324,43 @@ void btrfs_destroy_cachep(void)
kmem_cache_destroy(btrfs_path_cachep);
}
+static struct kmem_cache *cache_create(const char *name, size_t size,
+ unsigned long extra_flags,
+ void (*ctor)(void *, struct kmem_cache *,
+ unsigned long))
+{
+ return kmem_cache_create(name, size, 0, (SLAB_RECLAIM_ACCOUNT |
+ SLAB_MEM_SPREAD | extra_flags), ctor
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23)
+ ,NULL
+#endif
+ );
+}
+
int btrfs_init_cachep(void)
{
- btrfs_inode_cachep = kmem_cache_create("btrfs_inode_cache",
- sizeof(struct btrfs_inode),
- 0, (SLAB_RECLAIM_ACCOUNT|
- SLAB_MEM_SPREAD),
- init_once, NULL);
+ btrfs_inode_cachep = cache_create("btrfs_inode_cache",
+ sizeof(struct btrfs_inode),
+ 0, init_once);
if (!btrfs_inode_cachep)
goto fail;
- btrfs_trans_handle_cachep = kmem_cache_create("btrfs_trans_handle_cache",
+ btrfs_trans_handle_cachep = cache_create("btrfs_trans_handle_cache",
sizeof(struct btrfs_trans_handle),
- 0, (SLAB_RECLAIM_ACCOUNT|
- SLAB_MEM_SPREAD),
- NULL, NULL);
+ 0, NULL);
if (!btrfs_trans_handle_cachep)
goto fail;
- btrfs_transaction_cachep = kmem_cache_create("btrfs_transaction_cache",
+ btrfs_transaction_cachep = cache_create("btrfs_transaction_cache",
sizeof(struct btrfs_transaction),
- 0, (SLAB_RECLAIM_ACCOUNT|
- SLAB_MEM_SPREAD),
- NULL, NULL);
+ 0, NULL);
if (!btrfs_transaction_cachep)
goto fail;
- btrfs_path_cachep = kmem_cache_create("btrfs_path_cache",
- sizeof(struct btrfs_transaction),
- 0, (SLAB_RECLAIM_ACCOUNT|
- SLAB_MEM_SPREAD),
- NULL, NULL);
+ btrfs_path_cachep = cache_create("btrfs_path_cache",
+ sizeof(struct btrfs_transaction),
+ 0, NULL);
if (!btrfs_path_cachep)
goto fail;
- btrfs_bit_radix_cachep = kmem_cache_create("btrfs_radix",
- 256,
- 0, (SLAB_RECLAIM_ACCOUNT|
- SLAB_MEM_SPREAD |
- SLAB_DESTROY_BY_RCU),
- NULL, NULL);
+ btrfs_bit_radix_cachep = cache_create("btrfs_radix", 256,
+ SLAB_DESTROY_BY_RCU, NULL);
if (!btrfs_bit_radix_cachep)
goto fail;
return 0;