f2fs.h (3a2ad5672bb36ee9c07bab97dadc8b0f70d391f4) | f2fs.h (7c45729a4d6d1c90879e6c5c2df325c2f6db7191) |
---|---|
1/* 2 * fs/f2fs/f2fs.h 3 * 4 * Copyright (c) 2012 Samsung Electronics Co., Ltd. 5 * http://www.samsung.com/ 6 * 7 * This program is free software; you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License version 2 as --- 479 unchanged lines hidden (view full) --- 488} 489 490static inline bool __is_front_mergeable(struct extent_info *cur, 491 struct extent_info *front) 492{ 493 return __is_extent_mergeable(cur, front); 494} 495 | 1/* 2 * fs/f2fs/f2fs.h 3 * 4 * Copyright (c) 2012 Samsung Electronics Co., Ltd. 5 * http://www.samsung.com/ 6 * 7 * This program is free software; you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License version 2 as --- 479 unchanged lines hidden (view full) --- 488} 489 490static inline bool __is_front_mergeable(struct extent_info *cur, 491 struct extent_info *front) 492{ 493 return __is_extent_mergeable(cur, front); 494} 495 |
496extern void f2fs_mark_inode_dirty_sync(struct inode *); | 496extern void f2fs_mark_inode_dirty_sync(struct inode *, bool); |
497static inline void __try_update_largest_extent(struct inode *inode, 498 struct extent_tree *et, struct extent_node *en) 499{ 500 if (en->ei.len > et->largest.len) { 501 et->largest = en->ei; | 497static inline void __try_update_largest_extent(struct inode *inode, 498 struct extent_tree *et, struct extent_node *en) 499{ 500 if (en->ei.len > et->largest.len) { 501 et->largest = en->ei; |
502 f2fs_mark_inode_dirty_sync(inode); | 502 f2fs_mark_inode_dirty_sync(inode, true); |
503 } 504} 505 506enum nid_list { 507 FREE_NID_LIST, 508 ALLOC_NID_LIST, 509 MAX_NID_LIST, 510}; --- 1111 unchanged lines hidden (view full) --- 1622 switch (flag) { 1623 case FI_INLINE_XATTR: 1624 case FI_INLINE_DATA: 1625 case FI_INLINE_DENTRY: 1626 if (set) 1627 return; 1628 case FI_DATA_EXIST: 1629 case FI_INLINE_DOTS: | 503 } 504} 505 506enum nid_list { 507 FREE_NID_LIST, 508 ALLOC_NID_LIST, 509 MAX_NID_LIST, 510}; --- 1111 unchanged lines hidden (view full) --- 1622 switch (flag) { 1623 case FI_INLINE_XATTR: 1624 case FI_INLINE_DATA: 1625 case FI_INLINE_DENTRY: 1626 if (set) 1627 return; 1628 case FI_DATA_EXIST: 1629 case FI_INLINE_DOTS: |
1630 f2fs_mark_inode_dirty_sync(inode); | 1630 f2fs_mark_inode_dirty_sync(inode, true); |
1631 } 1632} 1633 1634static inline void set_inode_flag(struct inode *inode, int flag) 1635{ 1636 if (!test_bit(flag, &F2FS_I(inode)->flags)) 1637 set_bit(flag, &F2FS_I(inode)->flags); 1638 __mark_inode_dirty_flag(inode, flag, true); --- 10 unchanged lines hidden (view full) --- 1649 clear_bit(flag, &F2FS_I(inode)->flags); 1650 __mark_inode_dirty_flag(inode, flag, false); 1651} 1652 1653static inline void set_acl_inode(struct inode *inode, umode_t mode) 1654{ 1655 F2FS_I(inode)->i_acl_mode = mode; 1656 set_inode_flag(inode, FI_ACL_MODE); | 1631 } 1632} 1633 1634static inline void set_inode_flag(struct inode *inode, int flag) 1635{ 1636 if (!test_bit(flag, &F2FS_I(inode)->flags)) 1637 set_bit(flag, &F2FS_I(inode)->flags); 1638 __mark_inode_dirty_flag(inode, flag, true); --- 10 unchanged lines hidden (view full) --- 1649 clear_bit(flag, &F2FS_I(inode)->flags); 1650 __mark_inode_dirty_flag(inode, flag, false); 1651} 1652 1653static inline void set_acl_inode(struct inode *inode, umode_t mode) 1654{ 1655 F2FS_I(inode)->i_acl_mode = mode; 1656 set_inode_flag(inode, FI_ACL_MODE); |
1657 f2fs_mark_inode_dirty_sync(inode); | 1657 f2fs_mark_inode_dirty_sync(inode, false); |
1658} 1659 1660static inline void f2fs_i_links_write(struct inode *inode, bool inc) 1661{ 1662 if (inc) 1663 inc_nlink(inode); 1664 else 1665 drop_nlink(inode); | 1658} 1659 1660static inline void f2fs_i_links_write(struct inode *inode, bool inc) 1661{ 1662 if (inc) 1663 inc_nlink(inode); 1664 else 1665 drop_nlink(inode); |
1666 f2fs_mark_inode_dirty_sync(inode); | 1666 f2fs_mark_inode_dirty_sync(inode, true); |
1667} 1668 1669static inline void f2fs_i_blocks_write(struct inode *inode, 1670 blkcnt_t diff, bool add) 1671{ 1672 bool clean = !is_inode_flag_set(inode, FI_DIRTY_INODE); 1673 bool recover = is_inode_flag_set(inode, FI_AUTO_RECOVER); 1674 1675 inode->i_blocks = add ? inode->i_blocks + diff : 1676 inode->i_blocks - diff; | 1667} 1668 1669static inline void f2fs_i_blocks_write(struct inode *inode, 1670 blkcnt_t diff, bool add) 1671{ 1672 bool clean = !is_inode_flag_set(inode, FI_DIRTY_INODE); 1673 bool recover = is_inode_flag_set(inode, FI_AUTO_RECOVER); 1674 1675 inode->i_blocks = add ? inode->i_blocks + diff : 1676 inode->i_blocks - diff; |
1677 f2fs_mark_inode_dirty_sync(inode); | 1677 f2fs_mark_inode_dirty_sync(inode, true); |
1678 if (clean || recover) 1679 set_inode_flag(inode, FI_AUTO_RECOVER); 1680} 1681 1682static inline void f2fs_i_size_write(struct inode *inode, loff_t i_size) 1683{ 1684 bool clean = !is_inode_flag_set(inode, FI_DIRTY_INODE); 1685 bool recover = is_inode_flag_set(inode, FI_AUTO_RECOVER); 1686 1687 if (i_size_read(inode) == i_size) 1688 return; 1689 1690 i_size_write(inode, i_size); | 1678 if (clean || recover) 1679 set_inode_flag(inode, FI_AUTO_RECOVER); 1680} 1681 1682static inline void f2fs_i_size_write(struct inode *inode, loff_t i_size) 1683{ 1684 bool clean = !is_inode_flag_set(inode, FI_DIRTY_INODE); 1685 bool recover = is_inode_flag_set(inode, FI_AUTO_RECOVER); 1686 1687 if (i_size_read(inode) == i_size) 1688 return; 1689 1690 i_size_write(inode, i_size); |
1691 f2fs_mark_inode_dirty_sync(inode); | 1691 f2fs_mark_inode_dirty_sync(inode, true); |
1692 if (clean || recover) 1693 set_inode_flag(inode, FI_AUTO_RECOVER); 1694} 1695 1696static inline bool f2fs_skip_inode_update(struct inode *inode) 1697{ 1698 if (!is_inode_flag_set(inode, FI_AUTO_RECOVER)) 1699 return false; 1700 return F2FS_I(inode)->last_disk_size == i_size_read(inode); 1701} 1702 1703static inline void f2fs_i_depth_write(struct inode *inode, unsigned int depth) 1704{ 1705 F2FS_I(inode)->i_current_depth = depth; | 1692 if (clean || recover) 1693 set_inode_flag(inode, FI_AUTO_RECOVER); 1694} 1695 1696static inline bool f2fs_skip_inode_update(struct inode *inode) 1697{ 1698 if (!is_inode_flag_set(inode, FI_AUTO_RECOVER)) 1699 return false; 1700 return F2FS_I(inode)->last_disk_size == i_size_read(inode); 1701} 1702 1703static inline void f2fs_i_depth_write(struct inode *inode, unsigned int depth) 1704{ 1705 F2FS_I(inode)->i_current_depth = depth; |
1706 f2fs_mark_inode_dirty_sync(inode); | 1706 f2fs_mark_inode_dirty_sync(inode, true); |
1707} 1708 1709static inline void f2fs_i_xnid_write(struct inode *inode, nid_t xnid) 1710{ 1711 F2FS_I(inode)->i_xattr_nid = xnid; | 1707} 1708 1709static inline void f2fs_i_xnid_write(struct inode *inode, nid_t xnid) 1710{ 1711 F2FS_I(inode)->i_xattr_nid = xnid; |
1712 f2fs_mark_inode_dirty_sync(inode); | 1712 f2fs_mark_inode_dirty_sync(inode, true); |
1713} 1714 1715static inline void f2fs_i_pino_write(struct inode *inode, nid_t pino) 1716{ 1717 F2FS_I(inode)->i_pino = pino; | 1713} 1714 1715static inline void f2fs_i_pino_write(struct inode *inode, nid_t pino) 1716{ 1717 F2FS_I(inode)->i_pino = pino; |
1718 f2fs_mark_inode_dirty_sync(inode); | 1718 f2fs_mark_inode_dirty_sync(inode, true); |
1719} 1720 1721static inline void get_inline_info(struct inode *inode, struct f2fs_inode *ri) 1722{ 1723 struct f2fs_inode_info *fi = F2FS_I(inode); 1724 1725 if (ri->i_inline & F2FS_INLINE_XATTR) 1726 set_bit(FI_INLINE_XATTR, &fi->flags); --- 111 unchanged lines hidden (view full) --- 1838static inline int is_file(struct inode *inode, int type) 1839{ 1840 return F2FS_I(inode)->i_advise & type; 1841} 1842 1843static inline void set_file(struct inode *inode, int type) 1844{ 1845 F2FS_I(inode)->i_advise |= type; | 1719} 1720 1721static inline void get_inline_info(struct inode *inode, struct f2fs_inode *ri) 1722{ 1723 struct f2fs_inode_info *fi = F2FS_I(inode); 1724 1725 if (ri->i_inline & F2FS_INLINE_XATTR) 1726 set_bit(FI_INLINE_XATTR, &fi->flags); --- 111 unchanged lines hidden (view full) --- 1838static inline int is_file(struct inode *inode, int type) 1839{ 1840 return F2FS_I(inode)->i_advise & type; 1841} 1842 1843static inline void set_file(struct inode *inode, int type) 1844{ 1845 F2FS_I(inode)->i_advise |= type; |
1846 f2fs_mark_inode_dirty_sync(inode); | 1846 f2fs_mark_inode_dirty_sync(inode, true); |
1847} 1848 1849static inline void clear_file(struct inode *inode, int type) 1850{ 1851 F2FS_I(inode)->i_advise &= ~type; | 1847} 1848 1849static inline void clear_file(struct inode *inode, int type) 1850{ 1851 F2FS_I(inode)->i_advise &= ~type; |
1852 f2fs_mark_inode_dirty_sync(inode); | 1852 f2fs_mark_inode_dirty_sync(inode, true); |
1853} 1854 1855static inline int f2fs_readonly(struct super_block *sb) 1856{ 1857 return sb->s_flags & MS_RDONLY; 1858} 1859 1860static inline bool f2fs_cp_error(struct f2fs_sb_info *sbi) --- 135 unchanged lines hidden (view full) --- 1996{ 1997 return __f2fs_add_link(d_inode(dentry->d_parent), &dentry->d_name, 1998 inode, inode->i_ino, inode->i_mode); 1999} 2000 2001/* 2002 * super.c 2003 */ | 1853} 1854 1855static inline int f2fs_readonly(struct super_block *sb) 1856{ 1857 return sb->s_flags & MS_RDONLY; 1858} 1859 1860static inline bool f2fs_cp_error(struct f2fs_sb_info *sbi) --- 135 unchanged lines hidden (view full) --- 1996{ 1997 return __f2fs_add_link(d_inode(dentry->d_parent), &dentry->d_name, 1998 inode, inode->i_ino, inode->i_mode); 1999} 2000 2001/* 2002 * super.c 2003 */ |
2004int f2fs_inode_dirtied(struct inode *); | 2004int f2fs_inode_dirtied(struct inode *, bool); |
2005void f2fs_inode_synced(struct inode *); 2006int f2fs_commit_super(struct f2fs_sb_info *, bool); 2007int f2fs_sync_fs(struct super_block *, int); 2008extern __printf(3, 4) 2009void f2fs_msg(struct super_block *, const char *, const char *, ...); 2010int sanity_check_ckpt(struct f2fs_sb_info *sbi); 2011 2012/* --- 464 unchanged lines hidden --- | 2005void f2fs_inode_synced(struct inode *); 2006int f2fs_commit_super(struct f2fs_sb_info *, bool); 2007int f2fs_sync_fs(struct super_block *, int); 2008extern __printf(3, 4) 2009void f2fs_msg(struct super_block *, const char *, const char *, ...); 2010int sanity_check_ckpt(struct f2fs_sb_info *sbi); 2011 2012/* --- 464 unchanged lines hidden --- |