compress.c (eaf3389c8545487c520d104f9596d810e51301bb) compress.c (fa36f5ff74f0daf536647d418cafc0f19d5b116c)
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * f2fs compress support
4 *
5 * Copyright (c) 2019 Chao Yu <chao@kernel.org>
6 */
7
8#include <linux/fs.h>

--- 1796 unchanged lines hidden (view full) ---

1805
1806 f2fs_put_dic(dic, in_task);
1807}
1808
1809/*
1810 * check whether cluster blocks are contiguous, and add extent cache entry
1811 * only if cluster blocks are logically and physically contiguous.
1812 */
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * f2fs compress support
4 *
5 * Copyright (c) 2019 Chao Yu <chao@kernel.org>
6 */
7
8#include <linux/fs.h>

--- 1796 unchanged lines hidden (view full) ---

1805
1806 f2fs_put_dic(dic, in_task);
1807}
1808
1809/*
1810 * check whether cluster blocks are contiguous, and add extent cache entry
1811 * only if cluster blocks are logically and physically contiguous.
1812 */
1813unsigned int f2fs_cluster_blocks_are_contiguous(struct dnode_of_data *dn)
1813unsigned int f2fs_cluster_blocks_are_contiguous(struct dnode_of_data *dn,
1814 unsigned int ofs_in_node)
1814{
1815{
1815 bool compressed = f2fs_data_blkaddr(dn) == COMPRESS_ADDR;
1816 bool compressed = data_blkaddr(dn->inode, dn->node_page,
1817 ofs_in_node) == COMPRESS_ADDR;
1816 int i = compressed ? 1 : 0;
1817 block_t first_blkaddr = data_blkaddr(dn->inode, dn->node_page,
1818 int i = compressed ? 1 : 0;
1819 block_t first_blkaddr = data_blkaddr(dn->inode, dn->node_page,
1818 dn->ofs_in_node + i);
1820 ofs_in_node + i);
1819
1820 for (i += 1; i < F2FS_I(dn->inode)->i_cluster_size; i++) {
1821 block_t blkaddr = data_blkaddr(dn->inode, dn->node_page,
1821
1822 for (i += 1; i < F2FS_I(dn->inode)->i_cluster_size; i++) {
1823 block_t blkaddr = data_blkaddr(dn->inode, dn->node_page,
1822 dn->ofs_in_node + i);
1824 ofs_in_node + i);
1823
1824 if (!__is_valid_data_blkaddr(blkaddr))
1825 break;
1826 if (first_blkaddr + i - (compressed ? 1 : 0) != blkaddr)
1827 return 0;
1828 }
1829
1830 return compressed ? i - 1 : i;

--- 200 unchanged lines hidden ---
1825
1826 if (!__is_valid_data_blkaddr(blkaddr))
1827 break;
1828 if (first_blkaddr + i - (compressed ? 1 : 0) != blkaddr)
1829 return 0;
1830 }
1831
1832 return compressed ? i - 1 : i;

--- 200 unchanged lines hidden ---