f2fs.h (a4b6817625e71d5d4aee16cacf7a7fec077c6dbe) f2fs.h (94c821fb286b545d37549ff30a0c341e066f0d6c)
1/* SPDX-License-Identifier: GPL-2.0 */
2/*
3 * fs/f2fs/f2fs.h
4 *
5 * Copyright (c) 2012 Samsung Electronics Co., Ltd.
6 * http://www.samsung.com/
7 */
8#ifndef _LINUX_F2FS_H

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

2068{
2069 unsigned long flags;
2070
2071 spin_lock_irqsave(&sbi->cp_lock, flags);
2072 __clear_ckpt_flags(F2FS_CKPT(sbi), f);
2073 spin_unlock_irqrestore(&sbi->cp_lock, flags);
2074}
2075
1/* SPDX-License-Identifier: GPL-2.0 */
2/*
3 * fs/f2fs/f2fs.h
4 *
5 * Copyright (c) 2012 Samsung Electronics Co., Ltd.
6 * http://www.samsung.com/
7 */
8#ifndef _LINUX_F2FS_H

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

2068{
2069 unsigned long flags;
2070
2071 spin_lock_irqsave(&sbi->cp_lock, flags);
2072 __clear_ckpt_flags(F2FS_CKPT(sbi), f);
2073 spin_unlock_irqrestore(&sbi->cp_lock, flags);
2074}
2075
2076static inline void disable_nat_bits(struct f2fs_sb_info *sbi, bool lock)
2077{
2078 unsigned long flags;
2079 unsigned char *nat_bits;
2080
2081 /*
2082 * In order to re-enable nat_bits we need to call fsck.f2fs by
2083 * set_sbi_flag(sbi, SBI_NEED_FSCK). But it may give huge cost,
2084 * so let's rely on regular fsck or unclean shutdown.
2085 */
2086
2087 if (lock)
2088 spin_lock_irqsave(&sbi->cp_lock, flags);
2089 __clear_ckpt_flags(F2FS_CKPT(sbi), CP_NAT_BITS_FLAG);
2090 nat_bits = NM_I(sbi)->nat_bits;
2091 NM_I(sbi)->nat_bits = NULL;
2092 if (lock)
2093 spin_unlock_irqrestore(&sbi->cp_lock, flags);
2094
2095 kvfree(nat_bits);
2096}
2097
2098static inline bool enabled_nat_bits(struct f2fs_sb_info *sbi,
2099 struct cp_control *cpc)
2100{
2101 bool set = is_set_ckpt_flags(sbi, CP_NAT_BITS_FLAG);
2102
2103 return (cpc) ? (cpc->reason & CP_UMOUNT) && set : set;
2104}
2105
2106static inline void f2fs_lock_op(struct f2fs_sb_info *sbi)
2107{
2108 down_read(&sbi->cp_rwsem);
2109}
2110
2111static inline int f2fs_trylock_op(struct f2fs_sb_info *sbi)
2112{
2113 return down_read_trylock(&sbi->cp_rwsem);

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

3424int f2fs_get_node_info(struct f2fs_sb_info *sbi, nid_t nid,
3425 struct node_info *ni);
3426pgoff_t f2fs_get_next_page_offset(struct dnode_of_data *dn, pgoff_t pgofs);
3427int f2fs_get_dnode_of_data(struct dnode_of_data *dn, pgoff_t index, int mode);
3428int f2fs_truncate_inode_blocks(struct inode *inode, pgoff_t from);
3429int f2fs_truncate_xattr_node(struct inode *inode);
3430int f2fs_wait_on_node_pages_writeback(struct f2fs_sb_info *sbi,
3431 unsigned int seq_id);
2076static inline void f2fs_lock_op(struct f2fs_sb_info *sbi)
2077{
2078 down_read(&sbi->cp_rwsem);
2079}
2080
2081static inline int f2fs_trylock_op(struct f2fs_sb_info *sbi)
2082{
2083 return down_read_trylock(&sbi->cp_rwsem);

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

3394int f2fs_get_node_info(struct f2fs_sb_info *sbi, nid_t nid,
3395 struct node_info *ni);
3396pgoff_t f2fs_get_next_page_offset(struct dnode_of_data *dn, pgoff_t pgofs);
3397int f2fs_get_dnode_of_data(struct dnode_of_data *dn, pgoff_t index, int mode);
3398int f2fs_truncate_inode_blocks(struct inode *inode, pgoff_t from);
3399int f2fs_truncate_xattr_node(struct inode *inode);
3400int f2fs_wait_on_node_pages_writeback(struct f2fs_sb_info *sbi,
3401 unsigned int seq_id);
3402bool f2fs_nat_bitmap_enabled(struct f2fs_sb_info *sbi);
3432int f2fs_remove_inode_page(struct inode *inode);
3433struct page *f2fs_new_inode_page(struct inode *inode);
3434struct page *f2fs_new_node_page(struct dnode_of_data *dn, unsigned int ofs);
3435void f2fs_ra_node_page(struct f2fs_sb_info *sbi, nid_t nid);
3436struct page *f2fs_get_node_page(struct f2fs_sb_info *sbi, pgoff_t nid);
3437struct page *f2fs_get_node_page_ra(struct page *parent, int start);
3438int f2fs_move_node_page(struct page *node_page, int gc_type);
3439void f2fs_flush_inline_data(struct f2fs_sb_info *sbi);

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

3448void f2fs_alloc_nid_done(struct f2fs_sb_info *sbi, nid_t nid);
3449void f2fs_alloc_nid_failed(struct f2fs_sb_info *sbi, nid_t nid);
3450int f2fs_try_to_free_nids(struct f2fs_sb_info *sbi, int nr_shrink);
3451int f2fs_recover_inline_xattr(struct inode *inode, struct page *page);
3452int f2fs_recover_xattr_data(struct inode *inode, struct page *page);
3453int f2fs_recover_inode_page(struct f2fs_sb_info *sbi, struct page *page);
3454int f2fs_restore_node_summary(struct f2fs_sb_info *sbi,
3455 unsigned int segno, struct f2fs_summary_block *sum);
3403int f2fs_remove_inode_page(struct inode *inode);
3404struct page *f2fs_new_inode_page(struct inode *inode);
3405struct page *f2fs_new_node_page(struct dnode_of_data *dn, unsigned int ofs);
3406void f2fs_ra_node_page(struct f2fs_sb_info *sbi, nid_t nid);
3407struct page *f2fs_get_node_page(struct f2fs_sb_info *sbi, pgoff_t nid);
3408struct page *f2fs_get_node_page_ra(struct page *parent, int start);
3409int f2fs_move_node_page(struct page *node_page, int gc_type);
3410void f2fs_flush_inline_data(struct f2fs_sb_info *sbi);

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

3419void f2fs_alloc_nid_done(struct f2fs_sb_info *sbi, nid_t nid);
3420void f2fs_alloc_nid_failed(struct f2fs_sb_info *sbi, nid_t nid);
3421int f2fs_try_to_free_nids(struct f2fs_sb_info *sbi, int nr_shrink);
3422int f2fs_recover_inline_xattr(struct inode *inode, struct page *page);
3423int f2fs_recover_xattr_data(struct inode *inode, struct page *page);
3424int f2fs_recover_inode_page(struct f2fs_sb_info *sbi, struct page *page);
3425int f2fs_restore_node_summary(struct f2fs_sb_info *sbi,
3426 unsigned int segno, struct f2fs_summary_block *sum);
3427void f2fs_enable_nat_bits(struct f2fs_sb_info *sbi);
3456int f2fs_flush_nat_entries(struct f2fs_sb_info *sbi, struct cp_control *cpc);
3457int f2fs_build_node_manager(struct f2fs_sb_info *sbi);
3458void f2fs_destroy_node_manager(struct f2fs_sb_info *sbi);
3459int __init f2fs_create_node_manager_caches(void);
3460void f2fs_destroy_node_manager_caches(void);
3461
3462/*
3463 * segment.c

--- 932 unchanged lines hidden ---
3428int f2fs_flush_nat_entries(struct f2fs_sb_info *sbi, struct cp_control *cpc);
3429int f2fs_build_node_manager(struct f2fs_sb_info *sbi);
3430void f2fs_destroy_node_manager(struct f2fs_sb_info *sbi);
3431int __init f2fs_create_node_manager_caches(void);
3432void f2fs_destroy_node_manager_caches(void);
3433
3434/*
3435 * segment.c

--- 932 unchanged lines hidden ---