Merge branches 'acpi-ec', 'acpi-soc', 'acpi-video' and 'acpi-resources'
[firefly-linux-kernel-4.4.55.git] / fs / f2fs / f2fs.h
index 964c240c287fb854411a4e27a6e9720a89f3bb01..7fa3313ab0e27381b95d48b22da8315e605ef567 100644 (file)
@@ -105,6 +105,10 @@ enum {
        CP_DISCARD,
 };
 
+#define DEF_BATCHED_TRIM_SECTIONS      32
+#define BATCHED_TRIM_SEGMENTS(sbi)     \
+               (SM_I(sbi)->trim_sections * (sbi)->segs_per_sec)
+
 struct cp_control {
        int reason;
        __u64 trim_start;
@@ -448,6 +452,9 @@ struct f2fs_sm_info {
        int nr_discards;                        /* # of discards in the list */
        int max_discards;                       /* max. discards to be issued */
 
+       /* for batched trimming */
+       unsigned int trim_sections;             /* # of sections to trim */
+
        struct list_head sit_entry_set; /* sit entry set list */
 
        unsigned int ipu_policy;        /* in-place-update policy */
@@ -1520,6 +1527,8 @@ struct page *get_lock_data_page(struct inode *, pgoff_t);
 struct page *get_new_data_page(struct inode *, struct page *, pgoff_t, bool);
 int do_write_data_page(struct page *, struct f2fs_io_info *);
 int f2fs_fiemap(struct inode *inode, struct fiemap_extent_info *, u64, u64);
+void f2fs_invalidate_page(struct page *, unsigned int, unsigned int);
+int f2fs_release_page(struct page *, gfp_t);
 
 /*
  * gc.c
@@ -1672,6 +1681,7 @@ 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;
+extern struct kmem_cache *inode_entry_slab;
 
 /*
  * inline.c