diff options
author | Chris Mason <chris.mason@oracle.com> | 2008-09-24 11:48:04 -0400 |
---|---|---|
committer | Chris Mason <chris.mason@oracle.com> | 2008-09-25 15:41:59 -0400 |
commit | 2b1f55b0f0d0d1a66470ef4ea2696cd5dd741a12 (patch) | |
tree | 980019fac9b0891e682bc7d9a8c8a58284b467fc /fs/btrfs | |
parent | 9b49c9b9f93e148815f2544d0c91f43b6d72eea9 (diff) |
Remove Btrfs compat code for older kernels
Btrfs had compatibility code for kernels back to 2.6.18. These have
been removed, and will be maintained in a separate backport
git tree from now on.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs/btrfs')
-rw-r--r-- | fs/btrfs/async-thread.c | 6 | ||||
-rw-r--r-- | fs/btrfs/compat.h | 40 | ||||
-rw-r--r-- | fs/btrfs/crc32c.h | 6 | ||||
-rw-r--r-- | fs/btrfs/ctree.h | 7 | ||||
-rw-r--r-- | fs/btrfs/disk-io.c | 28 | ||||
-rw-r--r-- | fs/btrfs/export.c | 6 | ||||
-rw-r--r-- | fs/btrfs/extent_io.c | 66 | ||||
-rw-r--r-- | fs/btrfs/file.c | 24 | ||||
-rw-r--r-- | fs/btrfs/inode.c | 135 | ||||
-rw-r--r-- | fs/btrfs/super.c | 7 | ||||
-rw-r--r-- | fs/btrfs/sysfs.c | 33 | ||||
-rw-r--r-- | fs/btrfs/volumes.c | 20 |
12 files changed, 10 insertions, 368 deletions
diff --git a/fs/btrfs/async-thread.c b/fs/btrfs/async-thread.c index 2ee301740195..4e780b279de6 100644 --- a/fs/btrfs/async-thread.c +++ b/fs/btrfs/async-thread.c | |||
@@ -20,13 +20,7 @@ | |||
20 | #include <linux/kthread.h> | 20 | #include <linux/kthread.h> |
21 | #include <linux/list.h> | 21 | #include <linux/list.h> |
22 | #include <linux/spinlock.h> | 22 | #include <linux/spinlock.h> |
23 | |||
24 | #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20) | ||
25 | # include <linux/freezer.h> | 23 | # include <linux/freezer.h> |
26 | #else | ||
27 | # include <linux/sched.h> | ||
28 | #endif | ||
29 | |||
30 | #include "async-thread.h" | 24 | #include "async-thread.h" |
31 | 25 | ||
32 | /* | 26 | /* |
diff --git a/fs/btrfs/compat.h b/fs/btrfs/compat.h index b0ed1887d9b1..cd6598b169df 100644 --- a/fs/btrfs/compat.h +++ b/fs/btrfs/compat.h | |||
@@ -1,9 +1,8 @@ | |||
1 | #ifndef _COMPAT_H_ | 1 | #ifndef _COMPAT_H_ |
2 | #define _COMPAT_H_ | 2 | #define _COMPAT_H_ |
3 | 3 | ||
4 | #if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,26) | 4 | #define btrfs_drop_nlink(inode) drop_nlink(inode) |
5 | #define trylock_page(page) (!TestSetPageLocked(page)) | 5 | #define btrfs_inc_nlink(inode) inc_nlink(inode) |
6 | #endif | ||
7 | 6 | ||
8 | #if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,27) | 7 | #if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,27) |
9 | static inline struct dentry *d_obtain_alias(struct inode *inode) | 8 | static inline struct dentry *d_obtain_alias(struct inode *inode) |
@@ -22,39 +21,4 @@ static inline struct dentry *d_obtain_alias(struct inode *inode) | |||
22 | } | 21 | } |
23 | #endif | 22 | #endif |
24 | 23 | ||
25 | #if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,18) | ||
26 | static inline void btrfs_drop_nlink(struct inode *inode) | ||
27 | { | ||
28 | inode->i_nlink--; | ||
29 | } | ||
30 | |||
31 | static inline void btrfs_inc_nlink(struct inode *inode) | ||
32 | { | ||
33 | inode->i_nlink++; | ||
34 | } | ||
35 | #else | ||
36 | # define btrfs_drop_nlink(inode) drop_nlink(inode) | ||
37 | # define btrfs_inc_nlink(inode) inc_nlink(inode) | ||
38 | #endif | ||
39 | |||
40 | /* | ||
41 | * Even if AppArmor isn't enabled, it still has different prototypes. | ||
42 | * Add more distro/version pairs here to declare which has AppArmor applied. | ||
43 | */ | ||
44 | #if defined(CONFIG_SUSE_KERNEL) | ||
45 | # if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22) | ||
46 | # define REMOVE_SUID_PATH 1 | ||
47 | # endif | ||
48 | #endif | ||
49 | |||
50 | /* | ||
51 | * catch any other distros that have patched in apparmor. This isn't | ||
52 | * 100% reliable because it won't catch people that hand compile their | ||
53 | * own distro kernels without apparmor compiled in. But, it is better | ||
54 | * than nothing. | ||
55 | */ | ||
56 | #ifdef CONFIG_SECURITY_APPARMOR | ||
57 | # define REMOVE_SUID_PATH 1 | ||
58 | #endif | ||
59 | |||
60 | #endif /* _COMPAT_H_ */ | 24 | #endif /* _COMPAT_H_ */ |
diff --git a/fs/btrfs/crc32c.h b/fs/btrfs/crc32c.h index bf6c12e85730..4f0fefed132a 100644 --- a/fs/btrfs/crc32c.h +++ b/fs/btrfs/crc32c.h | |||
@@ -96,13 +96,7 @@ static inline u32 __btrfs_crc32c(u32 crc, unsigned char const *address, | |||
96 | * We must workaround older implementations of crc32c_le() | 96 | * We must workaround older implementations of crc32c_le() |
97 | * found on older kernel versions. | 97 | * found on older kernel versions. |
98 | */ | 98 | */ |
99 | #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23) | ||
100 | #define btrfs_crc32c(seed, data, length) \ | ||
101 | __cpu_to_le32( __btrfs_crc32c( __le32_to_cpu(seed), \ | ||
102 | (unsigned char const *)data, length) ) | ||
103 | #else | ||
104 | #define btrfs_crc32c(seed, data, length) \ | 99 | #define btrfs_crc32c(seed, data, length) \ |
105 | __btrfs_crc32c(seed, (unsigned char const *)data, length) | 100 | __btrfs_crc32c(seed, (unsigned char const *)data, length) |
106 | #endif | 101 | #endif |
107 | #endif | ||
108 | 102 | ||
diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h index 138c157bbc45..3b3c1ca50c5d 100644 --- a/fs/btrfs/ctree.h +++ b/fs/btrfs/ctree.h | |||
@@ -1472,12 +1472,9 @@ static inline u32 btrfs_level_size(struct btrfs_root *root, int level) { | |||
1472 | ((unsigned long)(btrfs_leaf_data(leaf) + \ | 1472 | ((unsigned long)(btrfs_leaf_data(leaf) + \ |
1473 | btrfs_item_offset_nr(leaf, slot))) | 1473 | btrfs_item_offset_nr(leaf, slot))) |
1474 | 1474 | ||
1475 | static inline struct dentry *fdentry(struct file *file) { | 1475 | static inline struct dentry *fdentry(struct file *file) |
1476 | #if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,18) | 1476 | { |
1477 | return file->f_dentry; | ||
1478 | #else | ||
1479 | return file->f_path.dentry; | 1477 | return file->f_path.dentry; |
1480 | #endif | ||
1481 | } | 1478 | } |
1482 | 1479 | ||
1483 | /* extent-tree.c */ | 1480 | /* extent-tree.c */ |
diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c index d35ca6a3f513..dffb8dabd533 100644 --- a/fs/btrfs/disk-io.c +++ b/fs/btrfs/disk-io.c | |||
@@ -26,11 +26,7 @@ | |||
26 | #include <linux/buffer_head.h> // for block_sync_page | 26 | #include <linux/buffer_head.h> // for block_sync_page |
27 | #include <linux/workqueue.h> | 27 | #include <linux/workqueue.h> |
28 | #include <linux/kthread.h> | 28 | #include <linux/kthread.h> |
29 | #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20) | ||
30 | # include <linux/freezer.h> | 29 | # include <linux/freezer.h> |
31 | #else | ||
32 | # include <linux/sched.h> | ||
33 | #endif | ||
34 | #include "crc32c.h" | 30 | #include "crc32c.h" |
35 | #include "ctree.h" | 31 | #include "ctree.h" |
36 | #include "disk-io.h" | 32 | #include "disk-io.h" |
@@ -373,21 +369,11 @@ out: | |||
373 | return ret; | 369 | return ret; |
374 | } | 370 | } |
375 | 371 | ||
376 | #if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,23) | ||
377 | static void end_workqueue_bio(struct bio *bio, int err) | 372 | static void end_workqueue_bio(struct bio *bio, int err) |
378 | #else | ||
379 | static int end_workqueue_bio(struct bio *bio, | ||
380 | unsigned int bytes_done, int err) | ||
381 | #endif | ||
382 | { | 373 | { |
383 | struct end_io_wq *end_io_wq = bio->bi_private; | 374 | struct end_io_wq *end_io_wq = bio->bi_private; |
384 | struct btrfs_fs_info *fs_info; | 375 | struct btrfs_fs_info *fs_info; |
385 | 376 | ||
386 | #if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,23) | ||
387 | if (bio->bi_size) | ||
388 | return 1; | ||
389 | #endif | ||
390 | |||
391 | fs_info = end_io_wq->info; | 377 | fs_info = end_io_wq->info; |
392 | end_io_wq->error = err; | 378 | end_io_wq->error = err; |
393 | end_io_wq->work.func = end_workqueue_fn; | 379 | end_io_wq->work.func = end_workqueue_fn; |
@@ -397,10 +383,6 @@ static int end_workqueue_bio(struct bio *bio, | |||
397 | &end_io_wq->work); | 383 | &end_io_wq->work); |
398 | else | 384 | else |
399 | btrfs_queue_worker(&fs_info->endio_workers, &end_io_wq->work); | 385 | btrfs_queue_worker(&fs_info->endio_workers, &end_io_wq->work); |
400 | |||
401 | #if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,23) | ||
402 | return 0; | ||
403 | #endif | ||
404 | } | 386 | } |
405 | 387 | ||
406 | int btrfs_bio_wq_end_io(struct btrfs_fs_info *info, struct bio *bio, | 388 | int btrfs_bio_wq_end_io(struct btrfs_fs_info *info, struct bio *bio, |
@@ -1161,9 +1143,7 @@ void btrfs_unplug_io_fn(struct backing_dev_info *bdi, struct page *page) | |||
1161 | 1143 | ||
1162 | static int setup_bdi(struct btrfs_fs_info *info, struct backing_dev_info *bdi) | 1144 | static int setup_bdi(struct btrfs_fs_info *info, struct backing_dev_info *bdi) |
1163 | { | 1145 | { |
1164 | #if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,23) | ||
1165 | bdi_init(bdi); | 1146 | bdi_init(bdi); |
1166 | #endif | ||
1167 | bdi->ra_pages = default_backing_dev_info.ra_pages; | 1147 | bdi->ra_pages = default_backing_dev_info.ra_pages; |
1168 | bdi->state = 0; | 1148 | bdi->state = 0; |
1169 | bdi->capabilities = default_backing_dev_info.capabilities; | 1149 | bdi->capabilities = default_backing_dev_info.capabilities; |
@@ -1242,11 +1222,7 @@ static void end_workqueue_fn(struct btrfs_work *work) | |||
1242 | bio->bi_private = end_io_wq->private; | 1222 | bio->bi_private = end_io_wq->private; |
1243 | bio->bi_end_io = end_io_wq->end_io; | 1223 | bio->bi_end_io = end_io_wq->end_io; |
1244 | kfree(end_io_wq); | 1224 | kfree(end_io_wq); |
1245 | #if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,23) | ||
1246 | bio_endio(bio, bio->bi_size, error); | ||
1247 | #else | ||
1248 | bio_endio(bio, error); | 1225 | bio_endio(bio, error); |
1249 | #endif | ||
1250 | } | 1226 | } |
1251 | 1227 | ||
1252 | static int cleaner_kthread(void *arg) | 1228 | static int cleaner_kthread(void *arg) |
@@ -1673,9 +1649,7 @@ fail: | |||
1673 | 1649 | ||
1674 | kfree(extent_root); | 1650 | kfree(extent_root); |
1675 | kfree(tree_root); | 1651 | kfree(tree_root); |
1676 | #if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,23) | ||
1677 | bdi_destroy(&fs_info->bdi); | 1652 | bdi_destroy(&fs_info->bdi); |
1678 | #endif | ||
1679 | kfree(fs_info); | 1653 | kfree(fs_info); |
1680 | return ERR_PTR(err); | 1654 | return ERR_PTR(err); |
1681 | } | 1655 | } |
@@ -1936,9 +1910,7 @@ int close_ctree(struct btrfs_root *root) | |||
1936 | btrfs_close_devices(fs_info->fs_devices); | 1910 | btrfs_close_devices(fs_info->fs_devices); |
1937 | btrfs_mapping_tree_free(&fs_info->mapping_tree); | 1911 | btrfs_mapping_tree_free(&fs_info->mapping_tree); |
1938 | 1912 | ||
1939 | #if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,23) | ||
1940 | bdi_destroy(&fs_info->bdi); | 1913 | bdi_destroy(&fs_info->bdi); |
1941 | #endif | ||
1942 | 1914 | ||
1943 | kfree(fs_info->extent_root); | 1915 | kfree(fs_info->extent_root); |
1944 | kfree(fs_info->tree_root); | 1916 | kfree(fs_info->tree_root); |
diff --git a/fs/btrfs/export.c b/fs/btrfs/export.c index 2b357a6d2407..48b82cd7583c 100644 --- a/fs/btrfs/export.c +++ b/fs/btrfs/export.c | |||
@@ -7,12 +7,6 @@ | |||
7 | #include "export.h" | 7 | #include "export.h" |
8 | #include "compat.h" | 8 | #include "compat.h" |
9 | 9 | ||
10 | #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,28) | ||
11 | #define FILEID_BTRFS_WITHOUT_PARENT 0x4d | ||
12 | #define FILEID_BTRFS_WITH_PARENT 0x4e | ||
13 | #define FILEID_BTRFS_WITH_PARENT_ROOT 0x4f | ||
14 | #endif | ||
15 | |||
16 | #define BTRFS_FID_SIZE_NON_CONNECTABLE (offsetof(struct btrfs_fid, parent_objectid)/4) | 10 | #define BTRFS_FID_SIZE_NON_CONNECTABLE (offsetof(struct btrfs_fid, parent_objectid)/4) |
17 | #define BTRFS_FID_SIZE_CONNECTABLE (offsetof(struct btrfs_fid, parent_root_objectid)/4) | 11 | #define BTRFS_FID_SIZE_CONNECTABLE (offsetof(struct btrfs_fid, parent_root_objectid)/4) |
18 | #define BTRFS_FID_SIZE_CONNECTABLE_ROOT (sizeof(struct btrfs_fid)/4) | 12 | #define BTRFS_FID_SIZE_CONNECTABLE_ROOT (sizeof(struct btrfs_fid)/4) |
diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c index 58ad25838a41..e3a25be5c663 100644 --- a/fs/btrfs/extent_io.c +++ b/fs/btrfs/extent_io.c | |||
@@ -1397,12 +1397,7 @@ static int check_page_writeback(struct extent_io_tree *tree, | |||
1397 | * Scheduling is not allowed, so the extent state tree is expected | 1397 | * Scheduling is not allowed, so the extent state tree is expected |
1398 | * to have one and only one object corresponding to this IO. | 1398 | * to have one and only one object corresponding to this IO. |
1399 | */ | 1399 | */ |
1400 | #if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,23) | ||
1401 | static void end_bio_extent_writepage(struct bio *bio, int err) | 1400 | static void end_bio_extent_writepage(struct bio *bio, int err) |
1402 | #else | ||
1403 | static int end_bio_extent_writepage(struct bio *bio, | ||
1404 | unsigned int bytes_done, int err) | ||
1405 | #endif | ||
1406 | { | 1401 | { |
1407 | int uptodate = err == 0; | 1402 | int uptodate = err == 0; |
1408 | struct bio_vec *bvec = bio->bi_io_vec + bio->bi_vcnt - 1; | 1403 | struct bio_vec *bvec = bio->bi_io_vec + bio->bi_vcnt - 1; |
@@ -1412,10 +1407,6 @@ static int end_bio_extent_writepage(struct bio *bio, | |||
1412 | int whole_page; | 1407 | int whole_page; |
1413 | int ret; | 1408 | int ret; |
1414 | 1409 | ||
1415 | #if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,23) | ||
1416 | if (bio->bi_size) | ||
1417 | return 1; | ||
1418 | #endif | ||
1419 | do { | 1410 | do { |
1420 | struct page *page = bvec->bv_page; | 1411 | struct page *page = bvec->bv_page; |
1421 | tree = &BTRFS_I(page->mapping->host)->io_tree; | 1412 | tree = &BTRFS_I(page->mapping->host)->io_tree; |
@@ -1461,10 +1452,8 @@ static int end_bio_extent_writepage(struct bio *bio, | |||
1461 | else | 1452 | else |
1462 | check_page_writeback(tree, page); | 1453 | check_page_writeback(tree, page); |
1463 | } while (bvec >= bio->bi_io_vec); | 1454 | } while (bvec >= bio->bi_io_vec); |
1455 | |||
1464 | bio_put(bio); | 1456 | bio_put(bio); |
1465 | #if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,23) | ||
1466 | return 0; | ||
1467 | #endif | ||
1468 | } | 1457 | } |
1469 | 1458 | ||
1470 | /* | 1459 | /* |
@@ -1478,12 +1467,7 @@ static int end_bio_extent_writepage(struct bio *bio, | |||
1478 | * Scheduling is not allowed, so the extent state tree is expected | 1467 | * Scheduling is not allowed, so the extent state tree is expected |
1479 | * to have one and only one object corresponding to this IO. | 1468 | * to have one and only one object corresponding to this IO. |
1480 | */ | 1469 | */ |
1481 | #if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,23) | ||
1482 | static void end_bio_extent_readpage(struct bio *bio, int err) | 1470 | static void end_bio_extent_readpage(struct bio *bio, int err) |
1483 | #else | ||
1484 | static int end_bio_extent_readpage(struct bio *bio, | ||
1485 | unsigned int bytes_done, int err) | ||
1486 | #endif | ||
1487 | { | 1471 | { |
1488 | int uptodate = test_bit(BIO_UPTODATE, &bio->bi_flags); | 1472 | int uptodate = test_bit(BIO_UPTODATE, &bio->bi_flags); |
1489 | struct bio_vec *bvec = bio->bi_io_vec + bio->bi_vcnt - 1; | 1473 | struct bio_vec *bvec = bio->bi_io_vec + bio->bi_vcnt - 1; |
@@ -1493,11 +1477,6 @@ static int end_bio_extent_readpage(struct bio *bio, | |||
1493 | int whole_page; | 1477 | int whole_page; |
1494 | int ret; | 1478 | int ret; |
1495 | 1479 | ||
1496 | #if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,23) | ||
1497 | if (bio->bi_size) | ||
1498 | return 1; | ||
1499 | #endif | ||
1500 | |||
1501 | do { | 1480 | do { |
1502 | struct page *page = bvec->bv_page; | 1481 | struct page *page = bvec->bv_page; |
1503 | tree = &BTRFS_I(page->mapping->host)->io_tree; | 1482 | tree = &BTRFS_I(page->mapping->host)->io_tree; |
@@ -1556,9 +1535,6 @@ static int end_bio_extent_readpage(struct bio *bio, | |||
1556 | } while (bvec >= bio->bi_io_vec); | 1535 | } while (bvec >= bio->bi_io_vec); |
1557 | 1536 | ||
1558 | bio_put(bio); | 1537 | bio_put(bio); |
1559 | #if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,23) | ||
1560 | return 0; | ||
1561 | #endif | ||
1562 | } | 1538 | } |
1563 | 1539 | ||
1564 | /* | 1540 | /* |
@@ -1566,12 +1542,7 @@ static int end_bio_extent_readpage(struct bio *bio, | |||
1566 | * the structs in the extent tree when done, and set the uptodate bits | 1542 | * the structs in the extent tree when done, and set the uptodate bits |
1567 | * as appropriate. | 1543 | * as appropriate. |
1568 | */ | 1544 | */ |
1569 | #if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,23) | ||
1570 | static void end_bio_extent_preparewrite(struct bio *bio, int err) | 1545 | static void end_bio_extent_preparewrite(struct bio *bio, int err) |
1571 | #else | ||
1572 | static int end_bio_extent_preparewrite(struct bio *bio, | ||
1573 | unsigned int bytes_done, int err) | ||
1574 | #endif | ||
1575 | { | 1546 | { |
1576 | const int uptodate = test_bit(BIO_UPTODATE, &bio->bi_flags); | 1547 | const int uptodate = test_bit(BIO_UPTODATE, &bio->bi_flags); |
1577 | struct bio_vec *bvec = bio->bi_io_vec + bio->bi_vcnt - 1; | 1548 | struct bio_vec *bvec = bio->bi_io_vec + bio->bi_vcnt - 1; |
@@ -1579,11 +1550,6 @@ static int end_bio_extent_preparewrite(struct bio *bio, | |||
1579 | u64 start; | 1550 | u64 start; |
1580 | u64 end; | 1551 | u64 end; |
1581 | 1552 | ||
1582 | #if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,23) | ||
1583 | if (bio->bi_size) | ||
1584 | return 1; | ||
1585 | #endif | ||
1586 | |||
1587 | do { | 1553 | do { |
1588 | struct page *page = bvec->bv_page; | 1554 | struct page *page = bvec->bv_page; |
1589 | tree = &BTRFS_I(page->mapping->host)->io_tree; | 1555 | tree = &BTRFS_I(page->mapping->host)->io_tree; |
@@ -1607,9 +1573,6 @@ static int end_bio_extent_preparewrite(struct bio *bio, | |||
1607 | } while (bvec >= bio->bi_io_vec); | 1573 | } while (bvec >= bio->bi_io_vec); |
1608 | 1574 | ||
1609 | bio_put(bio); | 1575 | bio_put(bio); |
1610 | #if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,23) | ||
1611 | return 0; | ||
1612 | #endif | ||
1613 | } | 1576 | } |
1614 | 1577 | ||
1615 | static struct bio * | 1578 | static struct bio * |
@@ -2079,12 +2042,6 @@ done: | |||
2079 | return 0; | 2042 | return 0; |
2080 | } | 2043 | } |
2081 | 2044 | ||
2082 | #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22) | ||
2083 | /* Taken directly from 2.6.23 with a mod for a lockpage hook */ | ||
2084 | typedef int (*writepage_t)(struct page *page, struct writeback_control *wbc, | ||
2085 | void *data); | ||
2086 | #endif | ||
2087 | |||
2088 | /** | 2045 | /** |
2089 | * write_cache_pages - walk the list of dirty pages of the given address space and write all of them. | 2046 | * write_cache_pages - walk the list of dirty pages of the given address space and write all of them. |
2090 | * @mapping: address space structure to write | 2047 | * @mapping: address space structure to write |
@@ -2201,10 +2158,9 @@ retry: | |||
2201 | } | 2158 | } |
2202 | if (wbc->range_cyclic || (range_whole && wbc->nr_to_write > 0)) | 2159 | if (wbc->range_cyclic || (range_whole && wbc->nr_to_write > 0)) |
2203 | mapping->writeback_index = index; | 2160 | mapping->writeback_index = index; |
2204 | #if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,26) | 2161 | |
2205 | if (wbc->range_cont) | 2162 | if (wbc->range_cont) |
2206 | wbc->range_start = index << PAGE_CACHE_SHIFT; | 2163 | wbc->range_start = index << PAGE_CACHE_SHIFT; |
2207 | #endif | ||
2208 | return ret; | 2164 | return ret; |
2209 | } | 2165 | } |
2210 | EXPORT_SYMBOL(extent_write_cache_pages); | 2166 | EXPORT_SYMBOL(extent_write_cache_pages); |
@@ -2560,18 +2516,10 @@ static inline struct page *extent_buffer_page(struct extent_buffer *eb, | |||
2560 | * by increasing the reference count. So we know the page must | 2516 | * by increasing the reference count. So we know the page must |
2561 | * be in the radix tree. | 2517 | * be in the radix tree. |
2562 | */ | 2518 | */ |
2563 | #if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,26) | ||
2564 | rcu_read_lock(); | 2519 | rcu_read_lock(); |
2565 | #else | ||
2566 | read_lock_irq(&mapping->tree_lock); | ||
2567 | #endif | ||
2568 | p = radix_tree_lookup(&mapping->page_tree, i); | 2520 | p = radix_tree_lookup(&mapping->page_tree, i); |
2569 | |||
2570 | #if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,26) | ||
2571 | rcu_read_unlock(); | 2521 | rcu_read_unlock(); |
2572 | #else | 2522 | |
2573 | read_unlock_irq(&mapping->tree_lock); | ||
2574 | #endif | ||
2575 | return p; | 2523 | return p; |
2576 | } | 2524 | } |
2577 | 2525 | ||
@@ -2773,21 +2721,13 @@ int clear_extent_buffer_dirty(struct extent_io_tree *tree, | |||
2773 | } | 2721 | } |
2774 | } | 2722 | } |
2775 | clear_page_dirty_for_io(page); | 2723 | clear_page_dirty_for_io(page); |
2776 | #if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,26) | ||
2777 | spin_lock_irq(&page->mapping->tree_lock); | 2724 | spin_lock_irq(&page->mapping->tree_lock); |
2778 | #else | ||
2779 | read_lock_irq(&page->mapping->tree_lock); | ||
2780 | #endif | ||
2781 | if (!PageDirty(page)) { | 2725 | if (!PageDirty(page)) { |
2782 | radix_tree_tag_clear(&page->mapping->page_tree, | 2726 | radix_tree_tag_clear(&page->mapping->page_tree, |
2783 | page_index(page), | 2727 | page_index(page), |
2784 | PAGECACHE_TAG_DIRTY); | 2728 | PAGECACHE_TAG_DIRTY); |
2785 | } | 2729 | } |
2786 | #if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,26) | ||
2787 | spin_unlock_irq(&page->mapping->tree_lock); | 2730 | spin_unlock_irq(&page->mapping->tree_lock); |
2788 | #else | ||
2789 | read_unlock_irq(&page->mapping->tree_lock); | ||
2790 | #endif | ||
2791 | unlock_page(page); | 2731 | unlock_page(page); |
2792 | } | 2732 | } |
2793 | return 0; | 2733 | return 0; |
diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c index 48a702d41c8c..8856570a0ebd 100644 --- a/fs/btrfs/file.c +++ b/fs/btrfs/file.c | |||
@@ -871,15 +871,8 @@ static ssize_t btrfs_file_write(struct file *file, const char __user *buf, | |||
871 | goto out_nolock; | 871 | goto out_nolock; |
872 | if (count == 0) | 872 | if (count == 0) |
873 | goto out_nolock; | 873 | goto out_nolock; |
874 | #ifdef REMOVE_SUID_PATH | 874 | |
875 | err = remove_suid(&file->f_path); | ||
876 | #else | ||
877 | # if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,26) | ||
878 | err = file_remove_suid(file); | 875 | err = file_remove_suid(file); |
879 | # else | ||
880 | err = remove_suid(fdentry(file)); | ||
881 | # endif | ||
882 | #endif | ||
883 | if (err) | 876 | if (err) |
884 | goto out_nolock; | 877 | goto out_nolock; |
885 | file_update_time(file); | 878 | file_update_time(file); |
@@ -1003,17 +996,10 @@ out_nolock: | |||
1003 | btrfs_commit_transaction(trans, root); | 996 | btrfs_commit_transaction(trans, root); |
1004 | } | 997 | } |
1005 | } else if (num_written > 0 && (file->f_flags & O_DIRECT)) { | 998 | } else if (num_written > 0 && (file->f_flags & O_DIRECT)) { |
1006 | #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22) | ||
1007 | do_sync_file_range(file, start_pos, | ||
1008 | start_pos + num_written - 1, | ||
1009 | SYNC_FILE_RANGE_WRITE | | ||
1010 | SYNC_FILE_RANGE_WAIT_AFTER); | ||
1011 | #else | ||
1012 | do_sync_mapping_range(inode->i_mapping, start_pos, | 999 | do_sync_mapping_range(inode->i_mapping, start_pos, |
1013 | start_pos + num_written - 1, | 1000 | start_pos + num_written - 1, |
1014 | SYNC_FILE_RANGE_WRITE | | 1001 | SYNC_FILE_RANGE_WRITE | |
1015 | SYNC_FILE_RANGE_WAIT_AFTER); | 1002 | SYNC_FILE_RANGE_WAIT_AFTER); |
1016 | #endif | ||
1017 | invalidate_mapping_pages(inode->i_mapping, | 1003 | invalidate_mapping_pages(inode->i_mapping, |
1018 | start_pos >> PAGE_CACHE_SHIFT, | 1004 | start_pos >> PAGE_CACHE_SHIFT, |
1019 | (start_pos + num_written - 1) >> PAGE_CACHE_SHIFT); | 1005 | (start_pos + num_written - 1) >> PAGE_CACHE_SHIFT); |
@@ -1097,12 +1083,7 @@ out: | |||
1097 | } | 1083 | } |
1098 | 1084 | ||
1099 | static struct vm_operations_struct btrfs_file_vm_ops = { | 1085 | static struct vm_operations_struct btrfs_file_vm_ops = { |
1100 | #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23) | ||
1101 | .nopage = filemap_nopage, | ||
1102 | .populate = filemap_populate, | ||
1103 | #else | ||
1104 | .fault = filemap_fault, | 1086 | .fault = filemap_fault, |
1105 | #endif | ||
1106 | .page_mkwrite = btrfs_page_mkwrite, | 1087 | .page_mkwrite = btrfs_page_mkwrite, |
1107 | }; | 1088 | }; |
1108 | 1089 | ||
@@ -1118,9 +1099,6 @@ struct file_operations btrfs_file_operations = { | |||
1118 | .read = do_sync_read, | 1099 | .read = do_sync_read, |
1119 | .aio_read = generic_file_aio_read, | 1100 | .aio_read = generic_file_aio_read, |
1120 | .splice_read = generic_file_splice_read, | 1101 | .splice_read = generic_file_splice_read, |
1121 | #if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,18) | ||
1122 | .sendfile = generic_file_sendfile, | ||
1123 | #endif | ||
1124 | .write = btrfs_file_write, | 1102 | .write = btrfs_file_write, |
1125 | .mmap = btrfs_file_mmap, | 1103 | .mmap = btrfs_file_mmap, |
1126 | .open = generic_file_open, | 1104 | .open = generic_file_open, |
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index adb169d739ce..48a3dc030807 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c | |||
@@ -2073,104 +2073,6 @@ err: | |||
2073 | return ret; | 2073 | return ret; |
2074 | } | 2074 | } |
2075 | 2075 | ||
2076 | /* Kernels earlier than 2.6.28 still have the NFS deadlock where nfsd | ||
2077 | will call the file system's ->lookup() method from within its | ||
2078 | filldir callback, which in turn was called from the file system's | ||
2079 | ->readdir() method. And will deadlock for many file systems. */ | ||
2080 | #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,28) | ||
2081 | |||
2082 | struct nfshack_dirent { | ||
2083 | u64 ino; | ||
2084 | loff_t offset; | ||
2085 | int namlen; | ||
2086 | unsigned int d_type; | ||
2087 | char name[]; | ||
2088 | }; | ||
2089 | |||
2090 | struct nfshack_readdir { | ||
2091 | char *dirent; | ||
2092 | size_t used; | ||
2093 | int full; | ||
2094 | }; | ||
2095 | |||
2096 | |||
2097 | |||
2098 | static int btrfs_nfshack_filldir(void *__buf, const char *name, int namlen, | ||
2099 | loff_t offset, u64 ino, unsigned int d_type) | ||
2100 | { | ||
2101 | struct nfshack_readdir *buf = __buf; | ||
2102 | struct nfshack_dirent *de = (void *)(buf->dirent + buf->used); | ||
2103 | unsigned int reclen; | ||
2104 | |||
2105 | reclen = ALIGN(sizeof(struct nfshack_dirent) + namlen, sizeof(u64)); | ||
2106 | if (buf->used + reclen > PAGE_SIZE) { | ||
2107 | buf->full = 1; | ||
2108 | return -EINVAL; | ||
2109 | } | ||
2110 | |||
2111 | de->namlen = namlen; | ||
2112 | de->offset = offset; | ||
2113 | de->ino = ino; | ||
2114 | de->d_type = d_type; | ||
2115 | memcpy(de->name, name, namlen); | ||
2116 | buf->used += reclen; | ||
2117 | |||
2118 | return 0; | ||
2119 | } | ||
2120 | |||
2121 | static int btrfs_nfshack_readdir(struct file *file, void *dirent, | ||
2122 | filldir_t filldir) | ||
2123 | { | ||
2124 | struct nfshack_readdir buf; | ||
2125 | struct nfshack_dirent *de; | ||
2126 | int err; | ||
2127 | int size; | ||
2128 | loff_t offset; | ||
2129 | |||
2130 | buf.dirent = (void *)__get_free_page(GFP_KERNEL); | ||
2131 | if (!buf.dirent) | ||
2132 | return -ENOMEM; | ||
2133 | |||
2134 | offset = file->f_pos; | ||
2135 | |||
2136 | do { | ||
2137 | unsigned int reclen; | ||
2138 | |||
2139 | buf.used = 0; | ||
2140 | buf.full = 0; | ||
2141 | err = btrfs_real_readdir(file, &buf, btrfs_nfshack_filldir); | ||
2142 | if (err) | ||
2143 | break; | ||
2144 | |||
2145 | size = buf.used; | ||
2146 | |||
2147 | if (!size) | ||
2148 | break; | ||
2149 | |||
2150 | de = (struct nfshack_dirent *)buf.dirent; | ||
2151 | while (size > 0) { | ||
2152 | offset = de->offset; | ||
2153 | |||
2154 | if (filldir(dirent, de->name, de->namlen, de->offset, | ||
2155 | de->ino, de->d_type)) | ||
2156 | goto done; | ||
2157 | offset = file->f_pos; | ||
2158 | |||
2159 | reclen = ALIGN(sizeof(*de) + de->namlen, | ||
2160 | sizeof(u64)); | ||
2161 | size -= reclen; | ||
2162 | de = (struct nfshack_dirent *)((char *)de + reclen); | ||
2163 | } | ||
2164 | } while (buf.full); | ||
2165 | |||
2166 | done: | ||
2167 | free_page((unsigned long)buf.dirent); | ||
2168 | file->f_pos = offset; | ||
2169 | |||
2170 | return err; | ||
2171 | } | ||
2172 | #endif | ||
2173 | |||
2174 | int btrfs_write_inode(struct inode *inode, int wait) | 2076 | int btrfs_write_inode(struct inode *inode, int wait) |
2175 | { | 2077 | { |
2176 | struct btrfs_root *root = BTRFS_I(inode)->root; | 2078 | struct btrfs_root *root = BTRFS_I(inode)->root; |
@@ -3311,13 +3213,8 @@ unsigned long btrfs_force_ra(struct address_space *mapping, | |||
3311 | { | 3213 | { |
3312 | pgoff_t req_size = last_index - offset + 1; | 3214 | pgoff_t req_size = last_index - offset + 1; |
3313 | 3215 | ||
3314 | #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23) | ||
3315 | offset = page_cache_readahead(mapping, ra, file, offset, req_size); | ||
3316 | return offset; | ||
3317 | #else | ||
3318 | page_cache_sync_readahead(mapping, ra, file, offset, req_size); | 3216 | page_cache_sync_readahead(mapping, ra, file, offset, req_size); |
3319 | return offset + req_size; | 3217 | return offset + req_size; |
3320 | #endif | ||
3321 | } | 3218 | } |
3322 | 3219 | ||
3323 | struct inode *btrfs_alloc_inode(struct super_block *sb) | 3220 | struct inode *btrfs_alloc_inode(struct super_block *sb) |
@@ -3373,14 +3270,7 @@ void btrfs_destroy_inode(struct inode *inode) | |||
3373 | kmem_cache_free(btrfs_inode_cachep, BTRFS_I(inode)); | 3270 | kmem_cache_free(btrfs_inode_cachep, BTRFS_I(inode)); |
3374 | } | 3271 | } |
3375 | 3272 | ||
3376 | #if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,26) | ||
3377 | static void init_once(void *foo) | 3273 | static void init_once(void *foo) |
3378 | #elif LINUX_VERSION_CODE > KERNEL_VERSION(2,6,23) | ||
3379 | static void init_once(struct kmem_cache * cachep, void *foo) | ||
3380 | #else | ||
3381 | static void init_once(void * foo, struct kmem_cache * cachep, | ||
3382 | unsigned long flags) | ||
3383 | #endif | ||
3384 | { | 3274 | { |
3385 | struct btrfs_inode *ei = (struct btrfs_inode *) foo; | 3275 | struct btrfs_inode *ei = (struct btrfs_inode *) foo; |
3386 | 3276 | ||
@@ -3403,22 +3293,10 @@ void btrfs_destroy_cachep(void) | |||
3403 | 3293 | ||
3404 | struct kmem_cache *btrfs_cache_create(const char *name, size_t size, | 3294 | struct kmem_cache *btrfs_cache_create(const char *name, size_t size, |
3405 | unsigned long extra_flags, | 3295 | unsigned long extra_flags, |
3406 | #if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,26) | 3296 | void (*ctor)(void *)) |
3407 | void (*ctor)(void *) | ||
3408 | #elif LINUX_VERSION_CODE > KERNEL_VERSION(2,6,23) | ||
3409 | void (*ctor)(struct kmem_cache *, void *) | ||
3410 | #else | ||
3411 | void (*ctor)(void *, struct kmem_cache *, | ||
3412 | unsigned long) | ||
3413 | #endif | ||
3414 | ) | ||
3415 | { | 3297 | { |
3416 | return kmem_cache_create(name, size, 0, (SLAB_RECLAIM_ACCOUNT | | 3298 | return kmem_cache_create(name, size, 0, (SLAB_RECLAIM_ACCOUNT | |
3417 | SLAB_MEM_SPREAD | extra_flags), ctor | 3299 | SLAB_MEM_SPREAD | extra_flags), ctor); |
3418 | #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23) | ||
3419 | ,NULL | ||
3420 | #endif | ||
3421 | ); | ||
3422 | } | 3300 | } |
3423 | 3301 | ||
3424 | int btrfs_init_cachep(void) | 3302 | int btrfs_init_cachep(void) |
@@ -3666,12 +3544,7 @@ static int btrfs_set_page_dirty(struct page *page) | |||
3666 | return __set_page_dirty_nobuffers(page); | 3544 | return __set_page_dirty_nobuffers(page); |
3667 | } | 3545 | } |
3668 | 3546 | ||
3669 | #if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,26) | ||
3670 | static int btrfs_permission(struct inode *inode, int mask) | 3547 | static int btrfs_permission(struct inode *inode, int mask) |
3671 | #else | ||
3672 | static int btrfs_permission(struct inode *inode, int mask, | ||
3673 | struct nameidata *nd) | ||
3674 | #endif | ||
3675 | { | 3548 | { |
3676 | if (btrfs_test_flag(inode, READONLY) && (mask & MAY_WRITE)) | 3549 | if (btrfs_test_flag(inode, READONLY) && (mask & MAY_WRITE)) |
3677 | return -EACCES; | 3550 | return -EACCES; |
@@ -3702,11 +3575,7 @@ static struct inode_operations btrfs_dir_ro_inode_operations = { | |||
3702 | static struct file_operations btrfs_dir_file_operations = { | 3575 | static struct file_operations btrfs_dir_file_operations = { |
3703 | .llseek = generic_file_llseek, | 3576 | .llseek = generic_file_llseek, |
3704 | .read = generic_read_dir, | 3577 | .read = generic_read_dir, |
3705 | #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,28) | ||
3706 | .readdir = btrfs_nfshack_readdir, | ||
3707 | #else /* NFSd readdir/lookup deadlock is fixed */ | ||
3708 | .readdir = btrfs_real_readdir, | 3578 | .readdir = btrfs_real_readdir, |
3709 | #endif | ||
3710 | .unlocked_ioctl = btrfs_ioctl, | 3579 | .unlocked_ioctl = btrfs_ioctl, |
3711 | #ifdef CONFIG_COMPAT | 3580 | #ifdef CONFIG_COMPAT |
3712 | .compat_ioctl = btrfs_ioctl, | 3581 | .compat_ioctl = btrfs_ioctl, |
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c index f7b3eac7ac6d..8399d6d05d63 100644 --- a/fs/btrfs/super.c +++ b/fs/btrfs/super.c | |||
@@ -349,10 +349,7 @@ static int btrfs_fill_super(struct super_block * sb, | |||
349 | 349 | ||
350 | sb->s_root = root_dentry; | 350 | sb->s_root = root_dentry; |
351 | 351 | ||
352 | #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,25) | ||
353 | save_mount_options(sb, data); | 352 | save_mount_options(sb, data); |
354 | #endif | ||
355 | |||
356 | return 0; | 353 | return 0; |
357 | 354 | ||
358 | fail_close: | 355 | fail_close: |
@@ -566,11 +563,7 @@ static struct super_operations btrfs_super_ops = { | |||
566 | .put_super = btrfs_put_super, | 563 | .put_super = btrfs_put_super, |
567 | .write_super = btrfs_write_super, | 564 | .write_super = btrfs_write_super, |
568 | .sync_fs = btrfs_sync_fs, | 565 | .sync_fs = btrfs_sync_fs, |
569 | #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,25) | ||
570 | .read_inode = btrfs_read_locked_inode, | ||
571 | #else | ||
572 | .show_options = generic_show_options, | 566 | .show_options = generic_show_options, |
573 | #endif | ||
574 | .write_inode = btrfs_write_inode, | 567 | .write_inode = btrfs_write_inode, |
575 | .dirty_inode = btrfs_dirty_inode, | 568 | .dirty_inode = btrfs_dirty_inode, |
576 | .alloc_inode = btrfs_alloc_inode, | 569 | .alloc_inode = btrfs_alloc_inode, |
diff --git a/fs/btrfs/sysfs.c b/fs/btrfs/sysfs.c index 61af5d8446e3..300076e66765 100644 --- a/fs/btrfs/sysfs.c +++ b/fs/btrfs/sysfs.c | |||
@@ -28,7 +28,6 @@ | |||
28 | #include "disk-io.h" | 28 | #include "disk-io.h" |
29 | #include "transaction.h" | 29 | #include "transaction.h" |
30 | 30 | ||
31 | #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,25) | ||
32 | static ssize_t root_blocks_used_show(struct btrfs_root *root, char *buf) | 31 | static ssize_t root_blocks_used_show(struct btrfs_root *root, char *buf) |
33 | { | 32 | { |
34 | return snprintf(buf, PAGE_SIZE, "%llu\n", | 33 | return snprintf(buf, PAGE_SIZE, "%llu\n", |
@@ -267,35 +266,3 @@ void btrfs_exit_sysfs(void) | |||
267 | kset_unregister(btrfs_kset); | 266 | kset_unregister(btrfs_kset); |
268 | } | 267 | } |
269 | 268 | ||
270 | #else | ||
271 | |||
272 | int btrfs_sysfs_add_super(struct btrfs_fs_info *fs) | ||
273 | { | ||
274 | return 0; | ||
275 | } | ||
276 | |||
277 | int btrfs_sysfs_add_root(struct btrfs_root *root) | ||
278 | { | ||
279 | return 0; | ||
280 | } | ||
281 | |||
282 | void btrfs_sysfs_del_root(struct btrfs_root *root) | ||
283 | { | ||
284 | return; | ||
285 | } | ||
286 | |||
287 | void btrfs_sysfs_del_super(struct btrfs_fs_info *fs) | ||
288 | { | ||
289 | return; | ||
290 | } | ||
291 | |||
292 | int btrfs_init_sysfs(void) | ||
293 | { | ||
294 | return 0; | ||
295 | } | ||
296 | |||
297 | void btrfs_exit_sysfs(void) | ||
298 | { | ||
299 | return; | ||
300 | } | ||
301 | #endif | ||
diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c index b9e5c2d82dde..ddf89626498a 100644 --- a/fs/btrfs/volumes.c +++ b/fs/btrfs/volumes.c | |||
@@ -2080,20 +2080,11 @@ int btrfs_unplug_page(struct btrfs_mapping_tree *map_tree, | |||
2080 | } | 2080 | } |
2081 | 2081 | ||
2082 | 2082 | ||
2083 | #if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,23) | ||
2084 | static void end_bio_multi_stripe(struct bio *bio, int err) | 2083 | static void end_bio_multi_stripe(struct bio *bio, int err) |
2085 | #else | ||
2086 | static int end_bio_multi_stripe(struct bio *bio, | ||
2087 | unsigned int bytes_done, int err) | ||
2088 | #endif | ||
2089 | { | 2084 | { |
2090 | struct btrfs_multi_bio *multi = bio->bi_private; | 2085 | struct btrfs_multi_bio *multi = bio->bi_private; |
2091 | int is_orig_bio = 0; | 2086 | int is_orig_bio = 0; |
2092 | 2087 | ||
2093 | #if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,23) | ||
2094 | if (bio->bi_size) | ||
2095 | return 1; | ||
2096 | #endif | ||
2097 | if (err) | 2088 | if (err) |
2098 | atomic_inc(&multi->error); | 2089 | atomic_inc(&multi->error); |
2099 | 2090 | ||
@@ -2122,17 +2113,10 @@ static int end_bio_multi_stripe(struct bio *bio, | |||
2122 | } | 2113 | } |
2123 | kfree(multi); | 2114 | kfree(multi); |
2124 | 2115 | ||
2125 | #if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,23) | ||
2126 | bio_endio(bio, bio->bi_size, err); | ||
2127 | #else | ||
2128 | bio_endio(bio, err); | 2116 | bio_endio(bio, err); |
2129 | #endif | ||
2130 | } else if (!is_orig_bio) { | 2117 | } else if (!is_orig_bio) { |
2131 | bio_put(bio); | 2118 | bio_put(bio); |
2132 | } | 2119 | } |
2133 | #if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,23) | ||
2134 | return 0; | ||
2135 | #endif | ||
2136 | } | 2120 | } |
2137 | 2121 | ||
2138 | struct async_sched { | 2122 | struct async_sched { |
@@ -2248,11 +2232,7 @@ int btrfs_map_bio(struct btrfs_root *root, int rw, struct bio *bio, | |||
2248 | } else { | 2232 | } else { |
2249 | bio->bi_bdev = root->fs_info->fs_devices->latest_bdev; | 2233 | bio->bi_bdev = root->fs_info->fs_devices->latest_bdev; |
2250 | bio->bi_sector = logical >> 9; | 2234 | bio->bi_sector = logical >> 9; |
2251 | #if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,23) | ||
2252 | bio_endio(bio, bio->bi_size, -EIO); | ||
2253 | #else | ||
2254 | bio_endio(bio, -EIO); | 2235 | bio_endio(bio, -EIO); |
2255 | #endif | ||
2256 | } | 2236 | } |
2257 | dev_nr++; | 2237 | dev_nr++; |
2258 | } | 2238 | } |