node.c (1188f7f111c61394ec56beb8e30322305a8220b6) | node.c (fa36f5ff74f0daf536647d418cafc0f19d5b116c) |
---|---|
1// SPDX-License-Identifier: GPL-2.0 2/* 3 * fs/f2fs/node.c 4 * 5 * Copyright (c) 2012 Samsung Electronics Co., Ltd. 6 * http://www.samsung.com/ 7 */ 8#include <linux/fs.h> --- 838 unchanged lines hidden (view full) --- 847 } 848 dn->nid = nids[level]; 849 dn->ofs_in_node = offset[level]; 850 dn->node_page = npage[level]; 851 dn->data_blkaddr = f2fs_data_blkaddr(dn); 852 853 if (is_inode_flag_set(dn->inode, FI_COMPRESSED_FILE) && 854 f2fs_sb_has_readonly(sbi)) { | 1// SPDX-License-Identifier: GPL-2.0 2/* 3 * fs/f2fs/node.c 4 * 5 * Copyright (c) 2012 Samsung Electronics Co., Ltd. 6 * http://www.samsung.com/ 7 */ 8#include <linux/fs.h> --- 838 unchanged lines hidden (view full) --- 847 } 848 dn->nid = nids[level]; 849 dn->ofs_in_node = offset[level]; 850 dn->node_page = npage[level]; 851 dn->data_blkaddr = f2fs_data_blkaddr(dn); 852 853 if (is_inode_flag_set(dn->inode, FI_COMPRESSED_FILE) && 854 f2fs_sb_has_readonly(sbi)) { |
855 unsigned int c_len = f2fs_cluster_blocks_are_contiguous(dn); | 855 unsigned int cluster_size = F2FS_I(dn->inode)->i_cluster_size; 856 unsigned int ofs_in_node = dn->ofs_in_node; 857 pgoff_t fofs = index; 858 unsigned int c_len; |
856 block_t blkaddr; 857 | 859 block_t blkaddr; 860 |
861 /* should align fofs and ofs_in_node to cluster_size */ 862 if (fofs % cluster_size) { 863 fofs = round_down(fofs, cluster_size); 864 ofs_in_node = round_down(ofs_in_node, cluster_size); 865 } 866 867 c_len = f2fs_cluster_blocks_are_contiguous(dn, ofs_in_node); |
|
858 if (!c_len) 859 goto out; 860 | 868 if (!c_len) 869 goto out; 870 |
861 blkaddr = f2fs_data_blkaddr(dn); | 871 blkaddr = data_blkaddr(dn->inode, dn->node_page, ofs_in_node); |
862 if (blkaddr == COMPRESS_ADDR) 863 blkaddr = data_blkaddr(dn->inode, dn->node_page, | 872 if (blkaddr == COMPRESS_ADDR) 873 blkaddr = data_blkaddr(dn->inode, dn->node_page, |
864 dn->ofs_in_node + 1); | 874 ofs_in_node + 1); |
865 866 f2fs_update_read_extent_tree_range_compressed(dn->inode, | 875 876 f2fs_update_read_extent_tree_range_compressed(dn->inode, |
867 index, blkaddr, 868 F2FS_I(dn->inode)->i_cluster_size, 869 c_len); | 877 fofs, blkaddr, cluster_size, c_len); |
870 } 871out: 872 return 0; 873 874release_pages: 875 f2fs_put_page(parent, 1); 876 if (i > 1) 877 f2fs_put_page(npage[0], 0); --- 2576 unchanged lines hidden --- | 878 } 879out: 880 return 0; 881 882release_pages: 883 f2fs_put_page(parent, 1); 884 if (i > 1) 885 f2fs_put_page(npage[0], 0); --- 2576 unchanged lines hidden --- |