]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
f2fs: init local extent_info to avoid stale stack info in tp
authorHou Pengyang <houpengyang@huawei.com>
Thu, 23 Feb 2017 09:18:05 +0000 (09:18 +0000)
committerJaegeuk Kim <jaegeuk@kernel.org>
Mon, 27 Feb 2017 17:59:50 +0000 (09:59 -0800)
To avoid such stale(fops, blk, len) info in f2fs_lookup_extent_tree_end tp

dio-23095 [005] ...1 17878.856859: f2fs_lookup_extent_tree_end:
dev = (259,30), ino = 856, pgofs = 0,
ext_info(fofs: 3441207040, blk: 4294967232, len: 3481143808)

Signed-off-by: Hou Pengyang <houpengyang@huawei.com>
Reviewed-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/data.c
fs/f2fs/file.c

index 5f3bc98a387d4448e6d9091f9c76cf093e12264f..f72493d8c8e4ed617a4f01ea7bbd3c2657eb358a 100644 (file)
@@ -511,7 +511,7 @@ int f2fs_reserve_block(struct dnode_of_data *dn, pgoff_t index)
 
 int f2fs_get_block(struct dnode_of_data *dn, pgoff_t index)
 {
-       struct extent_info ei;
+       struct extent_info ei  = {0,0,0};
        struct inode *inode = dn->inode;
 
        if (f2fs_lookup_extent_cache(inode, index, &ei)) {
@@ -528,7 +528,7 @@ struct page *get_read_data_page(struct inode *inode, pgoff_t index,
        struct address_space *mapping = inode->i_mapping;
        struct dnode_of_data dn;
        struct page *page;
-       struct extent_info ei;
+       struct extent_info ei = {0,0,0};
        int err;
        struct f2fs_io_info fio = {
                .sbi = F2FS_I_SB(inode),
@@ -803,7 +803,7 @@ int f2fs_map_blocks(struct inode *inode, struct f2fs_map_blocks *map,
        int err = 0, ofs = 1;
        unsigned int ofs_in_node, last_ofs_in_node;
        blkcnt_t prealloc;
-       struct extent_info ei;
+       struct extent_info ei = {0,0,0};
        block_t blkaddr;
 
        if (!maxblocks)
@@ -1667,7 +1667,7 @@ static int prepare_write_begin(struct f2fs_sb_info *sbi,
        struct dnode_of_data dn;
        struct page *ipage;
        bool locked = false;
-       struct extent_info ei;
+       struct extent_info ei = {0,0,0};
        int err = 0;
 
        /*
index 12016481503069cd2a3fa919cc251413f2f5a2eb..36c156557bb18b09c0c5ef944c8beeff44c8d586 100644 (file)
@@ -1877,7 +1877,7 @@ static int f2fs_defragment_range(struct f2fs_sb_info *sbi,
 {
        struct inode *inode = file_inode(filp);
        struct f2fs_map_blocks map = { .m_next_pgofs = NULL };
-       struct extent_info ei;
+       struct extent_info ei = {0,0,0};
        pgoff_t pg_start, pg_end;
        unsigned int blk_per_seg = sbi->blocks_per_seg;
        unsigned int total = 0, sec_num;