Loading fs/btrfs/extent-tree.c +6 −10 Original line number Original line Diff line number Diff line Loading @@ -688,7 +688,7 @@ u32 btrfs_count_snapshots_in_path(struct btrfs_root *root, struct btrfs_path *path; struct btrfs_path *path; u64 bytenr; u64 bytenr; u64 found_objectid; u64 found_objectid; u64 root_objectid = 0; u64 root_objectid = root->root_key.objectid; u32 total_count = 0; u32 total_count = 0; u32 cur_count; u32 cur_count; u32 refs; u32 refs; Loading Loading @@ -749,15 +749,11 @@ u32 btrfs_count_snapshots_in_path(struct btrfs_root *root, struct btrfs_extent_ref); struct btrfs_extent_ref); found_objectid = btrfs_ref_root(l, ref_item); found_objectid = btrfs_ref_root(l, ref_item); if (found_objectid != root_objectid) if (found_objectid != root_objectid) { total_count++; total_count = 2; break; if (total_count > 1) } goto out; total_count = 1; if (root_objectid == 0) root_objectid = found_objectid; path->slots[0]++; path->slots[0]++; } } if (cur_count == 0) { if (cur_count == 0) { Loading fs/btrfs/inode.c +5 −34 Original line number Original line Diff line number Diff line Loading @@ -1770,6 +1770,11 @@ struct extent_map *btrfs_get_extent(struct inode *inode, struct page *page, again: again: em = lookup_extent_mapping(em_tree, start, end); em = lookup_extent_mapping(em_tree, start, end); if (em) { if (em) { if (em->start > start) { printk("get_extent start %Lu em start %Lu\n", start, em->start); WARN_ON(1); } goto out; goto out; } } if (!em) { if (!em) { Loading Loading @@ -1952,23 +1957,6 @@ static sector_t btrfs_bmap(struct address_space *mapping, sector_t iblock) return extent_bmap(mapping, iblock, btrfs_get_extent); return extent_bmap(mapping, iblock, btrfs_get_extent); } } static int btrfs_prepare_write(struct file *file, struct page *page, unsigned from, unsigned to) { struct btrfs_root *root = BTRFS_I(page->mapping->host)->root; int err; mutex_lock(&root->fs_info->fs_mutex); err = btrfs_check_free_space(root, PAGE_CACHE_SIZE, 0); mutex_unlock(&root->fs_info->fs_mutex); if (err) return -ENOSPC; return extent_prepare_write(&BTRFS_I(page->mapping->host)->extent_tree, page->mapping->host, page, from, to, btrfs_get_extent); } int btrfs_readpage(struct file *file, struct page *page) int btrfs_readpage(struct file *file, struct page *page) { { struct extent_map_tree *tree; struct extent_map_tree *tree; Loading Loading @@ -2120,21 +2108,6 @@ static void btrfs_truncate(struct inode *inode) btrfs_btree_balance_dirty(root, nr); btrfs_btree_balance_dirty(root, nr); } } int btrfs_commit_write(struct file *file, struct page *page, unsigned from, unsigned to) { loff_t pos = ((loff_t)page->index << PAGE_CACHE_SHIFT) + to; struct inode *inode = page->mapping->host; btrfs_cow_one_page(inode, page, PAGE_CACHE_SIZE); if (pos > inode->i_size) { i_size_write(inode, pos); mark_inode_dirty(inode); } return 0; } static int create_subvol(struct btrfs_root *root, char *name, int namelen) static int create_subvol(struct btrfs_root *root, char *name, int namelen) { { struct btrfs_trans_handle *trans; struct btrfs_trans_handle *trans; Loading Loading @@ -2930,8 +2903,6 @@ static struct address_space_operations btrfs_aops = { .writepages = btrfs_writepages, .writepages = btrfs_writepages, .readpages = btrfs_readpages, .readpages = btrfs_readpages, .sync_page = block_sync_page, .sync_page = block_sync_page, .prepare_write = btrfs_prepare_write, .commit_write = btrfs_commit_write, .bmap = btrfs_bmap, .bmap = btrfs_bmap, .invalidatepage = btrfs_invalidatepage, .invalidatepage = btrfs_invalidatepage, .releasepage = btrfs_releasepage, .releasepage = btrfs_releasepage, Loading Loading
fs/btrfs/extent-tree.c +6 −10 Original line number Original line Diff line number Diff line Loading @@ -688,7 +688,7 @@ u32 btrfs_count_snapshots_in_path(struct btrfs_root *root, struct btrfs_path *path; struct btrfs_path *path; u64 bytenr; u64 bytenr; u64 found_objectid; u64 found_objectid; u64 root_objectid = 0; u64 root_objectid = root->root_key.objectid; u32 total_count = 0; u32 total_count = 0; u32 cur_count; u32 cur_count; u32 refs; u32 refs; Loading Loading @@ -749,15 +749,11 @@ u32 btrfs_count_snapshots_in_path(struct btrfs_root *root, struct btrfs_extent_ref); struct btrfs_extent_ref); found_objectid = btrfs_ref_root(l, ref_item); found_objectid = btrfs_ref_root(l, ref_item); if (found_objectid != root_objectid) if (found_objectid != root_objectid) { total_count++; total_count = 2; break; if (total_count > 1) } goto out; total_count = 1; if (root_objectid == 0) root_objectid = found_objectid; path->slots[0]++; path->slots[0]++; } } if (cur_count == 0) { if (cur_count == 0) { Loading
fs/btrfs/inode.c +5 −34 Original line number Original line Diff line number Diff line Loading @@ -1770,6 +1770,11 @@ struct extent_map *btrfs_get_extent(struct inode *inode, struct page *page, again: again: em = lookup_extent_mapping(em_tree, start, end); em = lookup_extent_mapping(em_tree, start, end); if (em) { if (em) { if (em->start > start) { printk("get_extent start %Lu em start %Lu\n", start, em->start); WARN_ON(1); } goto out; goto out; } } if (!em) { if (!em) { Loading Loading @@ -1952,23 +1957,6 @@ static sector_t btrfs_bmap(struct address_space *mapping, sector_t iblock) return extent_bmap(mapping, iblock, btrfs_get_extent); return extent_bmap(mapping, iblock, btrfs_get_extent); } } static int btrfs_prepare_write(struct file *file, struct page *page, unsigned from, unsigned to) { struct btrfs_root *root = BTRFS_I(page->mapping->host)->root; int err; mutex_lock(&root->fs_info->fs_mutex); err = btrfs_check_free_space(root, PAGE_CACHE_SIZE, 0); mutex_unlock(&root->fs_info->fs_mutex); if (err) return -ENOSPC; return extent_prepare_write(&BTRFS_I(page->mapping->host)->extent_tree, page->mapping->host, page, from, to, btrfs_get_extent); } int btrfs_readpage(struct file *file, struct page *page) int btrfs_readpage(struct file *file, struct page *page) { { struct extent_map_tree *tree; struct extent_map_tree *tree; Loading Loading @@ -2120,21 +2108,6 @@ static void btrfs_truncate(struct inode *inode) btrfs_btree_balance_dirty(root, nr); btrfs_btree_balance_dirty(root, nr); } } int btrfs_commit_write(struct file *file, struct page *page, unsigned from, unsigned to) { loff_t pos = ((loff_t)page->index << PAGE_CACHE_SHIFT) + to; struct inode *inode = page->mapping->host; btrfs_cow_one_page(inode, page, PAGE_CACHE_SIZE); if (pos > inode->i_size) { i_size_write(inode, pos); mark_inode_dirty(inode); } return 0; } static int create_subvol(struct btrfs_root *root, char *name, int namelen) static int create_subvol(struct btrfs_root *root, char *name, int namelen) { { struct btrfs_trans_handle *trans; struct btrfs_trans_handle *trans; Loading Loading @@ -2930,8 +2903,6 @@ static struct address_space_operations btrfs_aops = { .writepages = btrfs_writepages, .writepages = btrfs_writepages, .readpages = btrfs_readpages, .readpages = btrfs_readpages, .sync_page = block_sync_page, .sync_page = block_sync_page, .prepare_write = btrfs_prepare_write, .commit_write = btrfs_commit_write, .bmap = btrfs_bmap, .bmap = btrfs_bmap, .invalidatepage = btrfs_invalidatepage, .invalidatepage = btrfs_invalidatepage, .releasepage = btrfs_releasepage, .releasepage = btrfs_releasepage, Loading