Loading fs/f2fs/data.c +11 −3 Original line number Diff line number Diff line Loading @@ -3713,18 +3713,26 @@ static sector_t f2fs_bmap_compress(struct inode *inode, sector_t block) static sector_t f2fs_bmap(struct address_space *mapping, sector_t block) { struct inode *inode = mapping->host; struct buffer_head tmp = { .b_size = i_blocksize(inode), }; sector_t blknr = 0; if (f2fs_has_inline_data(inode)) return 0; goto out; /* make sure allocating whole blocks */ if (mapping_tagged(mapping, PAGECACHE_TAG_DIRTY)) filemap_write_and_wait(mapping); if (f2fs_compressed_file(inode)) return f2fs_bmap_compress(inode, block); blknr = f2fs_bmap_compress(inode, block); return generic_block_bmap(mapping, block, get_data_block_bmap); if (!get_data_block_bmap(inode, block, &tmp, 0)) blknr = tmp.b_blocknr; out: trace_f2fs_bmap(inode, block, blknr); return blknr; } #ifdef CONFIG_MIGRATION Loading include/trace/events/f2fs.h +26 −0 Original line number Diff line number Diff line Loading @@ -1891,6 +1891,32 @@ TRACE_EVENT(f2fs_iostat, __entry->fs_cdrio, __entry->fs_nrio, __entry->fs_mrio) ); TRACE_EVENT(f2fs_bmap, TP_PROTO(struct inode *inode, sector_t lblock, sector_t pblock), TP_ARGS(inode, lblock, pblock), TP_STRUCT__entry( __field(dev_t, dev) __field(ino_t, ino) __field(sector_t, lblock) __field(sector_t, pblock) ), TP_fast_assign( __entry->dev = inode->i_sb->s_dev; __entry->ino = inode->i_ino; __entry->lblock = lblock; __entry->pblock = pblock; ), TP_printk("dev = (%d,%d), ino = %lu, lblock:%lld, pblock:%lld", show_dev_ino(__entry), (unsigned long long)__entry->lblock, (unsigned long long)__entry->pblock) ); #endif /* _TRACE_F2FS_H */ /* This part must be outside protection */ Loading Loading
fs/f2fs/data.c +11 −3 Original line number Diff line number Diff line Loading @@ -3713,18 +3713,26 @@ static sector_t f2fs_bmap_compress(struct inode *inode, sector_t block) static sector_t f2fs_bmap(struct address_space *mapping, sector_t block) { struct inode *inode = mapping->host; struct buffer_head tmp = { .b_size = i_blocksize(inode), }; sector_t blknr = 0; if (f2fs_has_inline_data(inode)) return 0; goto out; /* make sure allocating whole blocks */ if (mapping_tagged(mapping, PAGECACHE_TAG_DIRTY)) filemap_write_and_wait(mapping); if (f2fs_compressed_file(inode)) return f2fs_bmap_compress(inode, block); blknr = f2fs_bmap_compress(inode, block); return generic_block_bmap(mapping, block, get_data_block_bmap); if (!get_data_block_bmap(inode, block, &tmp, 0)) blknr = tmp.b_blocknr; out: trace_f2fs_bmap(inode, block, blknr); return blknr; } #ifdef CONFIG_MIGRATION Loading
include/trace/events/f2fs.h +26 −0 Original line number Diff line number Diff line Loading @@ -1891,6 +1891,32 @@ TRACE_EVENT(f2fs_iostat, __entry->fs_cdrio, __entry->fs_nrio, __entry->fs_mrio) ); TRACE_EVENT(f2fs_bmap, TP_PROTO(struct inode *inode, sector_t lblock, sector_t pblock), TP_ARGS(inode, lblock, pblock), TP_STRUCT__entry( __field(dev_t, dev) __field(ino_t, ino) __field(sector_t, lblock) __field(sector_t, pblock) ), TP_fast_assign( __entry->dev = inode->i_sb->s_dev; __entry->ino = inode->i_ino; __entry->lblock = lblock; __entry->pblock = pblock; ), TP_printk("dev = (%d,%d), ino = %lu, lblock:%lld, pblock:%lld", show_dev_ino(__entry), (unsigned long long)__entry->lblock, (unsigned long long)__entry->pblock) ); #endif /* _TRACE_F2FS_H */ /* This part must be outside protection */ Loading