aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/btrfs/inode.c29
-rw-r--r--fs/btrfs/super.c11
2 files changed, 11 insertions, 29 deletions
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index bbb71fad861a..315dd550d560 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -297,7 +297,6 @@ int btrfs_clear_bit_hook(struct inode *inode, u64 start, u64 end,
297 297
298int btrfs_submit_bio_hook(int rw, struct bio *bio) 298int btrfs_submit_bio_hook(int rw, struct bio *bio)
299{ 299{
300 // struct bio_vec *bvec = bio->bi_io_vec + bio->bi_vcnt - 1;
301 struct bio_vec *bvec = bio->bi_io_vec; 300 struct bio_vec *bvec = bio->bi_io_vec;
302 struct inode *inode = bvec->bv_page->mapping->host; 301 struct inode *inode = bvec->bv_page->mapping->host;
303 struct btrfs_root *root = BTRFS_I(inode)->root; 302 struct btrfs_root *root = BTRFS_I(inode)->root;
@@ -320,32 +319,7 @@ int btrfs_submit_bio_hook(int rw, struct bio *bio)
320 mutex_unlock(&root->fs_info->fs_mutex); 319 mutex_unlock(&root->fs_info->fs_mutex);
321 return ret; 320 return ret;
322} 321}
323#if 0 322
324int btrfs_writepage_io_hook(struct page *page, u64 start, u64 end)
325{
326 struct inode *inode = page->mapping->host;
327 struct btrfs_root *root = BTRFS_I(inode)->root;
328 struct btrfs_trans_handle *trans;
329 char *kaddr;
330 int ret = 0;
331 u64 page_start = (u64)page->index << PAGE_CACHE_SHIFT;
332 size_t offset = start - page_start;
333 if (btrfs_test_opt(root, NODATASUM) ||
334 btrfs_test_flag(inode, NODATASUM))
335 return 0;
336 mutex_lock(&root->fs_info->fs_mutex);
337 trans = btrfs_start_transaction(root, 1);
338 btrfs_set_trans_block_group(trans, inode);
339 kaddr = kmap(page);
340 btrfs_csum_file_block(trans, root, inode, inode->i_ino,
341 start, kaddr + offset, end - start + 1);
342 kunmap(page);
343 ret = btrfs_end_transaction(trans, root);
344 BUG_ON(ret);
345 mutex_unlock(&root->fs_info->fs_mutex);
346 return ret;
347}
348#endif
349int btrfs_readpage_io_hook(struct page *page, u64 start, u64 end) 323int btrfs_readpage_io_hook(struct page *page, u64 start, u64 end)
350{ 324{
351 int ret = 0; 325 int ret = 0;
@@ -3049,7 +3023,6 @@ static struct file_operations btrfs_dir_file_operations = {
3049 3023
3050static struct extent_io_ops btrfs_extent_io_ops = { 3024static struct extent_io_ops btrfs_extent_io_ops = {
3051 .fill_delalloc = run_delalloc_range, 3025 .fill_delalloc = run_delalloc_range,
3052 // .writepage_io_hook = btrfs_writepage_io_hook,
3053 .submit_bio_hook = btrfs_submit_bio_hook, 3026 .submit_bio_hook = btrfs_submit_bio_hook,
3054 .readpage_io_hook = btrfs_readpage_io_hook, 3027 .readpage_io_hook = btrfs_readpage_io_hook,
3055 .readpage_end_io_hook = btrfs_readpage_end_io_hook, 3028 .readpage_end_io_hook = btrfs_readpage_end_io_hook,
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
index a46300c4753a..4423a91206a1 100644
--- a/fs/btrfs/super.c
+++ b/fs/btrfs/super.c
@@ -272,6 +272,11 @@ static int btrfs_fill_super(struct super_block * sb, void * data, int silent)
272 272
273 sb->s_root = root_dentry; 273 sb->s_root = root_dentry;
274 btrfs_transaction_queue_work(tree_root, HZ * 30); 274 btrfs_transaction_queue_work(tree_root, HZ * 30);
275
276#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,25)
277 save_mount_options(sb, data);
278#endif
279
275 return 0; 280 return 0;
276 281
277fail_close: 282fail_close:
@@ -462,9 +467,13 @@ static struct super_operations btrfs_super_ops = {
462 .delete_inode = btrfs_delete_inode, 467 .delete_inode = btrfs_delete_inode,
463 .put_inode = btrfs_put_inode, 468 .put_inode = btrfs_put_inode,
464 .put_super = btrfs_put_super, 469 .put_super = btrfs_put_super,
465 .read_inode = btrfs_read_locked_inode,
466 .write_super = btrfs_write_super, 470 .write_super = btrfs_write_super,
467 .sync_fs = btrfs_sync_fs, 471 .sync_fs = btrfs_sync_fs,
472#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,25)
473 .read_inode = btrfs_read_locked_inode,
474#else
475 .show_options = generic_show_options,
476#endif
468 .write_inode = btrfs_write_inode, 477 .write_inode = btrfs_write_inode,
469 .dirty_inode = btrfs_dirty_inode, 478 .dirty_inode = btrfs_dirty_inode,
470 .alloc_inode = btrfs_alloc_inode, 479 .alloc_inode = btrfs_alloc_inode,