mirror of https://gitee.com/openkylin/linux.git
Merge branch 'cleanup/misc-simplify' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux into for-linus-4.5
This commit is contained in:
commit
afa427cf9d
|
@ -3906,7 +3906,6 @@ void btrfs_extent_item_to_extent_map(struct inode *inode,
|
|||
/* inode.c */
|
||||
struct btrfs_delalloc_work {
|
||||
struct inode *inode;
|
||||
int wait;
|
||||
int delay_iput;
|
||||
struct completion completion;
|
||||
struct list_head list;
|
||||
|
@ -3914,7 +3913,7 @@ struct btrfs_delalloc_work {
|
|||
};
|
||||
|
||||
struct btrfs_delalloc_work *btrfs_alloc_delalloc_work(struct inode *inode,
|
||||
int wait, int delay_iput);
|
||||
int delay_iput);
|
||||
void btrfs_wait_and_free_delalloc_work(struct btrfs_delalloc_work *work);
|
||||
|
||||
struct extent_map *btrfs_get_extent_fiemap(struct inode *inode, struct page *page,
|
||||
|
|
|
@ -3902,11 +3902,6 @@ int btrfs_buffer_uptodate(struct extent_buffer *buf, u64 parent_transid,
|
|||
return !ret;
|
||||
}
|
||||
|
||||
int btrfs_set_buffer_uptodate(struct extent_buffer *buf)
|
||||
{
|
||||
return set_extent_buffer_uptodate(buf);
|
||||
}
|
||||
|
||||
void btrfs_mark_buffer_dirty(struct extent_buffer *buf)
|
||||
{
|
||||
struct btrfs_root *root;
|
||||
|
|
|
@ -116,7 +116,6 @@ static inline void btrfs_put_fs_root(struct btrfs_root *root)
|
|||
void btrfs_mark_buffer_dirty(struct extent_buffer *buf);
|
||||
int btrfs_buffer_uptodate(struct extent_buffer *buf, u64 parent_transid,
|
||||
int atomic);
|
||||
int btrfs_set_buffer_uptodate(struct extent_buffer *buf);
|
||||
int btrfs_read_buffer(struct extent_buffer *buf, u64 parent_transid);
|
||||
u32 btrfs_csum_data(char *data, u32 seed, size_t len);
|
||||
void btrfs_csum_final(u32 crc, char *result);
|
||||
|
|
|
@ -7834,7 +7834,7 @@ btrfs_init_new_buffer(struct btrfs_trans_handle *trans, struct btrfs_root *root,
|
|||
clear_bit(EXTENT_BUFFER_STALE, &buf->bflags);
|
||||
|
||||
btrfs_set_lock_blocking(buf);
|
||||
btrfs_set_buffer_uptodate(buf);
|
||||
set_extent_buffer_uptodate(buf);
|
||||
|
||||
if (root->root_key.objectid == BTRFS_TREE_LOG_OBJECTID) {
|
||||
buf->log_index = root->log_transid % 2;
|
||||
|
|
|
@ -1451,7 +1451,7 @@ int unlock_extent(struct extent_io_tree *tree, u64 start, u64 end)
|
|||
GFP_NOFS);
|
||||
}
|
||||
|
||||
int extent_range_clear_dirty_for_io(struct inode *inode, u64 start, u64 end)
|
||||
void extent_range_clear_dirty_for_io(struct inode *inode, u64 start, u64 end)
|
||||
{
|
||||
unsigned long index = start >> PAGE_CACHE_SHIFT;
|
||||
unsigned long end_index = end >> PAGE_CACHE_SHIFT;
|
||||
|
@ -1464,10 +1464,9 @@ int extent_range_clear_dirty_for_io(struct inode *inode, u64 start, u64 end)
|
|||
page_cache_release(page);
|
||||
index++;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int extent_range_redirty_for_io(struct inode *inode, u64 start, u64 end)
|
||||
void extent_range_redirty_for_io(struct inode *inode, u64 start, u64 end)
|
||||
{
|
||||
unsigned long index = start >> PAGE_CACHE_SHIFT;
|
||||
unsigned long end_index = end >> PAGE_CACHE_SHIFT;
|
||||
|
@ -1481,13 +1480,12 @@ int extent_range_redirty_for_io(struct inode *inode, u64 start, u64 end)
|
|||
page_cache_release(page);
|
||||
index++;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* helper function to set both pages and extents in the tree writeback
|
||||
*/
|
||||
static int set_range_writeback(struct extent_io_tree *tree, u64 start, u64 end)
|
||||
static void set_range_writeback(struct extent_io_tree *tree, u64 start, u64 end)
|
||||
{
|
||||
unsigned long index = start >> PAGE_CACHE_SHIFT;
|
||||
unsigned long end_index = end >> PAGE_CACHE_SHIFT;
|
||||
|
@ -1500,7 +1498,6 @@ static int set_range_writeback(struct extent_io_tree *tree, u64 start, u64 end)
|
|||
page_cache_release(page);
|
||||
index++;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* find the first state struct with 'bits' set after 'start', and
|
||||
|
@ -1820,7 +1817,7 @@ STATIC u64 find_lock_delalloc_range(struct inode *inode,
|
|||
return found;
|
||||
}
|
||||
|
||||
int extent_clear_unlock_delalloc(struct inode *inode, u64 start, u64 end,
|
||||
void extent_clear_unlock_delalloc(struct inode *inode, u64 start, u64 end,
|
||||
struct page *locked_page,
|
||||
unsigned clear_bits,
|
||||
unsigned long page_ops)
|
||||
|
@ -1835,7 +1832,7 @@ int extent_clear_unlock_delalloc(struct inode *inode, u64 start, u64 end,
|
|||
|
||||
clear_extent_bit(tree, start, end, clear_bits, 1, 0, NULL, GFP_NOFS);
|
||||
if (page_ops == 0)
|
||||
return 0;
|
||||
return;
|
||||
|
||||
if ((page_ops & PAGE_SET_ERROR) && nr_pages > 0)
|
||||
mapping_set_error(inode->i_mapping, -EIO);
|
||||
|
@ -1869,7 +1866,6 @@ int extent_clear_unlock_delalloc(struct inode *inode, u64 start, u64 end,
|
|||
index += ret;
|
||||
cond_resched();
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -2516,7 +2512,7 @@ static int bio_readpage_error(struct bio *failed_bio, u64 phy_offset,
|
|||
|
||||
/* lots and lots of room for performance fixes in the end_bio funcs */
|
||||
|
||||
int end_extent_writepage(struct page *page, int err, u64 start, u64 end)
|
||||
void end_extent_writepage(struct page *page, int err, u64 start, u64 end)
|
||||
{
|
||||
int uptodate = (err == 0);
|
||||
struct extent_io_tree *tree;
|
||||
|
@ -2537,7 +2533,6 @@ int end_extent_writepage(struct page *page, int err, u64 start, u64 end)
|
|||
ret = ret < 0 ? ret : -EIO;
|
||||
mapping_set_error(page->mapping, ret);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -2579,9 +2574,7 @@ static void end_bio_extent_writepage(struct bio *bio)
|
|||
start = page_offset(page);
|
||||
end = start + bvec->bv_offset + bvec->bv_len - 1;
|
||||
|
||||
if (end_extent_writepage(page, bio->bi_error, start, end))
|
||||
continue;
|
||||
|
||||
end_extent_writepage(page, bio->bi_error, start, end);
|
||||
end_page_writeback(page);
|
||||
}
|
||||
|
||||
|
@ -5227,7 +5220,7 @@ int set_extent_buffer_dirty(struct extent_buffer *eb)
|
|||
return was_dirty;
|
||||
}
|
||||
|
||||
int clear_extent_buffer_uptodate(struct extent_buffer *eb)
|
||||
void clear_extent_buffer_uptodate(struct extent_buffer *eb)
|
||||
{
|
||||
unsigned long i;
|
||||
struct page *page;
|
||||
|
@ -5240,10 +5233,9 @@ int clear_extent_buffer_uptodate(struct extent_buffer *eb)
|
|||
if (page)
|
||||
ClearPageUptodate(page);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int set_extent_buffer_uptodate(struct extent_buffer *eb)
|
||||
void set_extent_buffer_uptodate(struct extent_buffer *eb)
|
||||
{
|
||||
unsigned long i;
|
||||
struct page *page;
|
||||
|
@ -5255,7 +5247,6 @@ int set_extent_buffer_uptodate(struct extent_buffer *eb)
|
|||
page = eb->pages[i];
|
||||
SetPageUptodate(page);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int extent_buffer_uptodate(struct extent_buffer *eb)
|
||||
|
|
|
@ -330,17 +330,17 @@ void memset_extent_buffer(struct extent_buffer *eb, char c,
|
|||
unsigned long start, unsigned long len);
|
||||
void clear_extent_buffer_dirty(struct extent_buffer *eb);
|
||||
int set_extent_buffer_dirty(struct extent_buffer *eb);
|
||||
int set_extent_buffer_uptodate(struct extent_buffer *eb);
|
||||
int clear_extent_buffer_uptodate(struct extent_buffer *eb);
|
||||
void set_extent_buffer_uptodate(struct extent_buffer *eb);
|
||||
void clear_extent_buffer_uptodate(struct extent_buffer *eb);
|
||||
int extent_buffer_uptodate(struct extent_buffer *eb);
|
||||
int extent_buffer_under_io(struct extent_buffer *eb);
|
||||
int map_private_extent_buffer(struct extent_buffer *eb, unsigned long offset,
|
||||
unsigned long min_len, char **map,
|
||||
unsigned long *map_start,
|
||||
unsigned long *map_len);
|
||||
int extent_range_clear_dirty_for_io(struct inode *inode, u64 start, u64 end);
|
||||
int extent_range_redirty_for_io(struct inode *inode, u64 start, u64 end);
|
||||
int extent_clear_unlock_delalloc(struct inode *inode, u64 start, u64 end,
|
||||
void extent_range_clear_dirty_for_io(struct inode *inode, u64 start, u64 end);
|
||||
void extent_range_redirty_for_io(struct inode *inode, u64 start, u64 end);
|
||||
void extent_clear_unlock_delalloc(struct inode *inode, u64 start, u64 end,
|
||||
struct page *locked_page,
|
||||
unsigned bits_to_clear,
|
||||
unsigned long page_ops);
|
||||
|
@ -357,7 +357,7 @@ int repair_io_failure(struct inode *inode, u64 start, u64 length, u64 logical,
|
|||
int mirror_num);
|
||||
int clean_io_failure(struct inode *inode, u64 start, struct page *page,
|
||||
unsigned int pg_offset);
|
||||
int end_extent_writepage(struct page *page, int err, u64 start, u64 end);
|
||||
void end_extent_writepage(struct page *page, int err, u64 start, u64 end);
|
||||
int repair_eb_io_failure(struct btrfs_root *root, struct extent_buffer *eb,
|
||||
int mirror_num);
|
||||
|
||||
|
|
|
@ -9418,14 +9418,10 @@ static void btrfs_run_delalloc_work(struct btrfs_work *work)
|
|||
delalloc_work = container_of(work, struct btrfs_delalloc_work,
|
||||
work);
|
||||
inode = delalloc_work->inode;
|
||||
if (delalloc_work->wait) {
|
||||
btrfs_wait_ordered_range(inode, 0, (u64)-1);
|
||||
} else {
|
||||
filemap_flush(inode->i_mapping);
|
||||
if (test_bit(BTRFS_INODE_HAS_ASYNC_EXTENT,
|
||||
&BTRFS_I(inode)->runtime_flags))
|
||||
filemap_flush(inode->i_mapping);
|
||||
if (test_bit(BTRFS_INODE_HAS_ASYNC_EXTENT,
|
||||
&BTRFS_I(inode)->runtime_flags))
|
||||
filemap_flush(inode->i_mapping);
|
||||
}
|
||||
|
||||
if (delalloc_work->delay_iput)
|
||||
btrfs_add_delayed_iput(inode);
|
||||
|
@ -9435,7 +9431,7 @@ static void btrfs_run_delalloc_work(struct btrfs_work *work)
|
|||
}
|
||||
|
||||
struct btrfs_delalloc_work *btrfs_alloc_delalloc_work(struct inode *inode,
|
||||
int wait, int delay_iput)
|
||||
int delay_iput)
|
||||
{
|
||||
struct btrfs_delalloc_work *work;
|
||||
|
||||
|
@ -9446,7 +9442,6 @@ struct btrfs_delalloc_work *btrfs_alloc_delalloc_work(struct inode *inode,
|
|||
init_completion(&work->completion);
|
||||
INIT_LIST_HEAD(&work->list);
|
||||
work->inode = inode;
|
||||
work->wait = wait;
|
||||
work->delay_iput = delay_iput;
|
||||
WARN_ON_ONCE(!inode);
|
||||
btrfs_init_work(&work->work, btrfs_flush_delalloc_helper,
|
||||
|
@ -9494,7 +9489,7 @@ static int __start_delalloc_inodes(struct btrfs_root *root, int delay_iput,
|
|||
}
|
||||
spin_unlock(&root->delalloc_lock);
|
||||
|
||||
work = btrfs_alloc_delalloc_work(inode, 0, delay_iput);
|
||||
work = btrfs_alloc_delalloc_work(inode, delay_iput);
|
||||
if (!work) {
|
||||
if (delay_iput)
|
||||
btrfs_add_delayed_iput(inode);
|
||||
|
|
|
@ -125,6 +125,7 @@ static int btrfs_relocate_sys_chunks(struct btrfs_root *root);
|
|||
static void __btrfs_reset_dev_stats(struct btrfs_device *dev);
|
||||
static void btrfs_dev_stat_print_on_error(struct btrfs_device *dev);
|
||||
static void btrfs_dev_stat_print_on_load(struct btrfs_device *device);
|
||||
static void btrfs_close_one_device(struct btrfs_device *device);
|
||||
|
||||
DEFINE_MUTEX(uuid_mutex);
|
||||
static LIST_HEAD(fs_uuids);
|
||||
|
@ -6465,11 +6466,11 @@ int btrfs_read_sys_array(struct btrfs_root *root)
|
|||
sb = btrfs_find_create_tree_block(root, BTRFS_SUPER_INFO_OFFSET);
|
||||
if (!sb)
|
||||
return -ENOMEM;
|
||||
btrfs_set_buffer_uptodate(sb);
|
||||
set_extent_buffer_uptodate(sb);
|
||||
btrfs_set_buffer_lockdep_class(root->root_key.objectid, sb, 0);
|
||||
/*
|
||||
* The sb extent buffer is artifical and just used to read the system array.
|
||||
* btrfs_set_buffer_uptodate() call does not properly mark all it's
|
||||
* set_extent_buffer_uptodate() call does not properly mark all it's
|
||||
* pages up-to-date when the page is larger: extent does not cover the
|
||||
* whole page and consequently check_page_uptodate does not find all
|
||||
* the page's extents up-to-date (the hole beyond sb),
|
||||
|
@ -6949,7 +6950,7 @@ void btrfs_reset_fs_info_ptr(struct btrfs_fs_info *fs_info)
|
|||
}
|
||||
}
|
||||
|
||||
void btrfs_close_one_device(struct btrfs_device *device)
|
||||
static void btrfs_close_one_device(struct btrfs_device *device)
|
||||
{
|
||||
struct btrfs_fs_devices *fs_devices = device->fs_devices;
|
||||
struct btrfs_device *new_device;
|
||||
|
|
|
@ -566,6 +566,5 @@ static inline void unlock_chunks(struct btrfs_root *root)
|
|||
struct list_head *btrfs_get_fs_uuids(void);
|
||||
void btrfs_set_fs_info_ptr(struct btrfs_fs_info *fs_info);
|
||||
void btrfs_reset_fs_info_ptr(struct btrfs_fs_info *fs_info);
|
||||
void btrfs_close_one_device(struct btrfs_device *device);
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue