|
@@ -39,6 +39,7 @@
|
|
|
#define F2FS_MOUNT_POSIX_ACL 0x00000020
|
|
|
#define F2FS_MOUNT_DISABLE_EXT_IDENTIFY 0x00000040
|
|
|
#define F2FS_MOUNT_INLINE_XATTR 0x00000080
|
|
|
+#define F2FS_MOUNT_INLINE_DATA 0x00000100
|
|
|
|
|
|
#define clear_opt(sbi, option) (sbi->mount_opt.opt &= ~F2FS_MOUNT_##option)
|
|
|
#define set_opt(sbi, option) (sbi->mount_opt.opt |= F2FS_MOUNT_##option)
|
|
@@ -899,6 +900,7 @@ enum {
|
|
|
FI_DELAY_IPUT, /* used for the recovery */
|
|
|
FI_NO_EXTENT, /* not to use the extent cache */
|
|
|
FI_INLINE_XATTR, /* used for inline xattr */
|
|
|
+ FI_INLINE_DATA, /* used for inline data*/
|
|
|
};
|
|
|
|
|
|
static inline void set_inode_flag(struct f2fs_inode_info *fi, int flag)
|
|
@@ -936,6 +938,8 @@ static inline void get_inline_info(struct f2fs_inode_info *fi,
|
|
|
{
|
|
|
if (ri->i_inline & F2FS_INLINE_XATTR)
|
|
|
set_inode_flag(fi, FI_INLINE_XATTR);
|
|
|
+ if (ri->i_inline & F2FS_INLINE_DATA)
|
|
|
+ set_inode_flag(fi, FI_INLINE_DATA);
|
|
|
}
|
|
|
|
|
|
static inline void set_raw_inline(struct f2fs_inode_info *fi,
|
|
@@ -945,6 +949,8 @@ static inline void set_raw_inline(struct f2fs_inode_info *fi,
|
|
|
|
|
|
if (is_inode_flag_set(fi, FI_INLINE_XATTR))
|
|
|
ri->i_inline |= F2FS_INLINE_XATTR;
|
|
|
+ if (is_inode_flag_set(fi, FI_INLINE_DATA))
|
|
|
+ ri->i_inline |= F2FS_INLINE_DATA;
|
|
|
}
|
|
|
|
|
|
static inline unsigned int addrs_per_inode(struct f2fs_inode_info *fi)
|
|
@@ -970,6 +976,13 @@ static inline int inline_xattr_size(struct inode *inode)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
+static inline void *inline_data_addr(struct page *page)
|
|
|
+{
|
|
|
+ struct f2fs_inode *ri;
|
|
|
+ ri = (struct f2fs_inode *)page_address(page);
|
|
|
+ return (void *)&(ri->i_addr[1]);
|
|
|
+}
|
|
|
+
|
|
|
static inline int f2fs_readonly(struct super_block *sb)
|
|
|
{
|
|
|
return sb->s_flags & MS_RDONLY;
|
|
@@ -1265,4 +1278,5 @@ extern const struct address_space_operations f2fs_meta_aops;
|
|
|
extern const struct inode_operations f2fs_dir_inode_operations;
|
|
|
extern const struct inode_operations f2fs_symlink_inode_operations;
|
|
|
extern const struct inode_operations f2fs_special_inode_operations;
|
|
|
+
|
|
|
#endif
|