diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-09-24 11:57:29 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-09-24 11:57:29 -0400 |
commit | dc2af6a6bcf3abdf44ac545759a6547dfe12070e (patch) | |
tree | 068ea2c5f5df55f72167ab3b51e001a98b7300e4 /fs/btrfs/compression.c | |
parent | 6c5daf012c9155aafd2c7973e4278766c30dfad0 (diff) | |
parent | 54bcf382daf08c1396edb8b81e650b58930ccaef (diff) |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable: (42 commits)
Btrfs: hash the btree inode during fill_super
Btrfs: relocate file extents in clusters
Btrfs: don't rename file into dummy directory
Btrfs: check size of inode backref before adding hardlink
Btrfs: fix releasepage to avoid unlocking extents we haven't locked
Btrfs: Fix test_range_bit for whole file extents
Btrfs: fix errors handling cached state in set/clear_extent_bit
Btrfs: fix early enospc during balancing
Btrfs: deal with NULL space info
Btrfs: account for space used by the super mirrors
Btrfs: fix extent entry threshold calculation
Btrfs: remove dead code
Btrfs: fix bitmap size tracking
Btrfs: don't keep retrying a block group if we fail to allocate a cluster
Btrfs: make balance code choose more wisely when relocating
Btrfs: fix arithmetic error in clone ioctl
Btrfs: add snapshot/subvolume destroy ioctl
Btrfs: change how subvolumes are organized
Btrfs: do not reuse objectid of deleted snapshot/subvol
Btrfs: speed up snapshot dropping
...
Diffstat (limited to 'fs/btrfs/compression.c')
-rw-r--r-- | fs/btrfs/compression.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/fs/btrfs/compression.c b/fs/btrfs/compression.c index 9d8ba4d54a37..a11a32058b50 100644 --- a/fs/btrfs/compression.c +++ b/fs/btrfs/compression.c | |||
@@ -506,10 +506,10 @@ static noinline int add_ra_bio_pages(struct inode *inode, | |||
506 | */ | 506 | */ |
507 | set_page_extent_mapped(page); | 507 | set_page_extent_mapped(page); |
508 | lock_extent(tree, last_offset, end, GFP_NOFS); | 508 | lock_extent(tree, last_offset, end, GFP_NOFS); |
509 | spin_lock(&em_tree->lock); | 509 | read_lock(&em_tree->lock); |
510 | em = lookup_extent_mapping(em_tree, last_offset, | 510 | em = lookup_extent_mapping(em_tree, last_offset, |
511 | PAGE_CACHE_SIZE); | 511 | PAGE_CACHE_SIZE); |
512 | spin_unlock(&em_tree->lock); | 512 | read_unlock(&em_tree->lock); |
513 | 513 | ||
514 | if (!em || last_offset < em->start || | 514 | if (!em || last_offset < em->start || |
515 | (last_offset + PAGE_CACHE_SIZE > extent_map_end(em)) || | 515 | (last_offset + PAGE_CACHE_SIZE > extent_map_end(em)) || |
@@ -593,11 +593,11 @@ int btrfs_submit_compressed_read(struct inode *inode, struct bio *bio, | |||
593 | em_tree = &BTRFS_I(inode)->extent_tree; | 593 | em_tree = &BTRFS_I(inode)->extent_tree; |
594 | 594 | ||
595 | /* we need the actual starting offset of this extent in the file */ | 595 | /* we need the actual starting offset of this extent in the file */ |
596 | spin_lock(&em_tree->lock); | 596 | read_lock(&em_tree->lock); |
597 | em = lookup_extent_mapping(em_tree, | 597 | em = lookup_extent_mapping(em_tree, |
598 | page_offset(bio->bi_io_vec->bv_page), | 598 | page_offset(bio->bi_io_vec->bv_page), |
599 | PAGE_CACHE_SIZE); | 599 | PAGE_CACHE_SIZE); |
600 | spin_unlock(&em_tree->lock); | 600 | read_unlock(&em_tree->lock); |
601 | 601 | ||
602 | compressed_len = em->block_len; | 602 | compressed_len = em->block_len; |
603 | cb = kmalloc(compressed_bio_size(root, compressed_len), GFP_NOFS); | 603 | cb = kmalloc(compressed_bio_size(root, compressed_len), GFP_NOFS); |