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 ---