ext4: Properly initialize the buffer_head state
These struct buffer_heads are allocated on the stack (and hence are initialized with stack garbage). They are only used to call a get_blocks() function, so that's mostly OK, but b_state must be initialized to be 0 so we don't have any unexpected BH_* flags set by accident, such as BH_Unwritten or BH_Delay. Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
This commit is contained in:
committed by
Theodore Ts'o
parent
9fa7eb283c
commit
79ffab3439
@@ -379,7 +379,8 @@ mpage_readpages(struct address_space *mapping, struct list_head *pages,
|
||||
struct buffer_head map_bh;
|
||||
unsigned long first_logical_block = 0;
|
||||
|
||||
clear_buffer_mapped(&map_bh);
|
||||
map_bh.b_state = 0;
|
||||
map_bh.b_size = 0;
|
||||
for (page_idx = 0; page_idx < nr_pages; page_idx++) {
|
||||
struct page *page = list_entry(pages->prev, struct page, lru);
|
||||
|
||||
@@ -412,7 +413,8 @@ int mpage_readpage(struct page *page, get_block_t get_block)
|
||||
struct buffer_head map_bh;
|
||||
unsigned long first_logical_block = 0;
|
||||
|
||||
clear_buffer_mapped(&map_bh);
|
||||
map_bh.b_state = 0;
|
||||
map_bh.b_size = 0;
|
||||
bio = do_mpage_readpage(bio, page, 1, &last_block_in_bio,
|
||||
&map_bh, &first_logical_block, get_block);
|
||||
if (bio)
|
||||
|
||||
Reference in New Issue
Block a user