f2fs.h (64282ea2d2a90437c0739ce016b80a1dec16507e) f2fs.h (7a10f0177e117e9935ee9e5c595fcf3c57215de5)
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

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

356};
357
358/*
359 * For INODE and NODE manager
360 */
361/* for directory operations */
362struct f2fs_dentry_ptr {
363 struct inode *inode;
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

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

356};
357
358/*
359 * For INODE and NODE manager
360 */
361/* for directory operations */
362struct f2fs_dentry_ptr {
363 struct inode *inode;
364 const void *bitmap;
364 void *bitmap;
365 struct f2fs_dir_entry *dentry;
366 __u8 (*filename)[F2FS_SLOT_LEN];
367 int max;
365 struct f2fs_dir_entry *dentry;
366 __u8 (*filename)[F2FS_SLOT_LEN];
367 int max;
368 int nr_bitmap;
368};
369
370static inline void make_dentry_ptr_block(struct inode *inode,
371 struct f2fs_dentry_ptr *d, struct f2fs_dentry_block *t)
372{
373 d->inode = inode;
374 d->max = NR_DENTRY_IN_BLOCK;
369};
370
371static inline void make_dentry_ptr_block(struct inode *inode,
372 struct f2fs_dentry_ptr *d, struct f2fs_dentry_block *t)
373{
374 d->inode = inode;
375 d->max = NR_DENTRY_IN_BLOCK;
376 d->nr_bitmap = SIZE_OF_DENTRY_BITMAP;
375 d->bitmap = &t->dentry_bitmap;
376 d->dentry = t->dentry;
377 d->filename = t->filename;
378}
379
380static inline void make_dentry_ptr_inline(struct inode *inode,
381 struct f2fs_dentry_ptr *d, struct f2fs_inline_dentry *t)
382{
383 d->inode = inode;
384 d->max = NR_INLINE_DENTRY;
377 d->bitmap = &t->dentry_bitmap;
378 d->dentry = t->dentry;
379 d->filename = t->filename;
380}
381
382static inline void make_dentry_ptr_inline(struct inode *inode,
383 struct f2fs_dentry_ptr *d, struct f2fs_inline_dentry *t)
384{
385 d->inode = inode;
386 d->max = NR_INLINE_DENTRY;
387 d->nr_bitmap = INLINE_DENTRY_BITMAP_SIZE;
385 d->bitmap = &t->dentry_bitmap;
386 d->dentry = t->dentry;
387 d->filename = t->filename;
388}
389
390/*
391 * XATTR_NODE_OFFSET stores xattrs to one node block per file keeping -1
392 * as its node offset to distinguish from index node blocks.

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

528 struct dquot *i_dquot[MAXQUOTAS];
529
530 /* quota space reservation, managed internally by quota code */
531 qsize_t i_reserved_quota;
532#endif
533 struct list_head dirty_list; /* dirty list for dirs and files */
534 struct list_head gdirty_list; /* linked in global dirty list */
535 struct list_head inmem_pages; /* inmemory pages managed by f2fs */
388 d->bitmap = &t->dentry_bitmap;
389 d->dentry = t->dentry;
390 d->filename = t->filename;
391}
392
393/*
394 * XATTR_NODE_OFFSET stores xattrs to one node block per file keeping -1
395 * as its node offset to distinguish from index node blocks.

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

531 struct dquot *i_dquot[MAXQUOTAS];
532
533 /* quota space reservation, managed internally by quota code */
534 qsize_t i_reserved_quota;
535#endif
536 struct list_head dirty_list; /* dirty list for dirs and files */
537 struct list_head gdirty_list; /* linked in global dirty list */
538 struct list_head inmem_pages; /* inmemory pages managed by f2fs */
539 struct task_struct *inmem_task; /* store inmemory task */
536 struct mutex inmem_lock; /* lock for inmemory pages */
537 struct extent_tree *extent_tree; /* cached extent_tree entry */
538 struct rw_semaphore dio_rwsem[2];/* avoid racing between dio and gc */
539 struct rw_semaphore i_mmap_sem;
540};
541
542static inline void get_extent_info(struct extent_info *ext,
543 struct f2fs_extent *i_ext)

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

2280void get_node_info(struct f2fs_sb_info *sbi, nid_t nid, struct node_info *ni);
2281pgoff_t get_next_page_offset(struct dnode_of_data *dn, pgoff_t pgofs);
2282int get_dnode_of_data(struct dnode_of_data *dn, pgoff_t index, int mode);
2283int truncate_inode_blocks(struct inode *inode, pgoff_t from);
2284int truncate_xattr_node(struct inode *inode, struct page *page);
2285int wait_on_node_pages_writeback(struct f2fs_sb_info *sbi, nid_t ino);
2286int remove_inode_page(struct inode *inode);
2287struct page *new_inode_page(struct inode *inode);
540 struct mutex inmem_lock; /* lock for inmemory pages */
541 struct extent_tree *extent_tree; /* cached extent_tree entry */
542 struct rw_semaphore dio_rwsem[2];/* avoid racing between dio and gc */
543 struct rw_semaphore i_mmap_sem;
544};
545
546static inline void get_extent_info(struct extent_info *ext,
547 struct f2fs_extent *i_ext)

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

2284void get_node_info(struct f2fs_sb_info *sbi, nid_t nid, struct node_info *ni);
2285pgoff_t get_next_page_offset(struct dnode_of_data *dn, pgoff_t pgofs);
2286int get_dnode_of_data(struct dnode_of_data *dn, pgoff_t index, int mode);
2287int truncate_inode_blocks(struct inode *inode, pgoff_t from);
2288int truncate_xattr_node(struct inode *inode, struct page *page);
2289int wait_on_node_pages_writeback(struct f2fs_sb_info *sbi, nid_t ino);
2290int remove_inode_page(struct inode *inode);
2291struct page *new_inode_page(struct inode *inode);
2288struct page *new_node_page(struct dnode_of_data *dn,
2289 unsigned int ofs, struct page *ipage);
2292struct page *new_node_page(struct dnode_of_data *dn, unsigned int ofs);
2290void ra_node_page(struct f2fs_sb_info *sbi, nid_t nid);
2291struct page *get_node_page(struct f2fs_sb_info *sbi, pgoff_t nid);
2292struct page *get_node_page_ra(struct page *parent, int start);
2293void move_node_page(struct page *node_page, int gc_type);
2294int fsync_node_pages(struct f2fs_sb_info *sbi, struct inode *inode,
2295 struct writeback_control *wbc, bool atomic);
2296int sync_node_pages(struct f2fs_sb_info *sbi, struct writeback_control *wbc);
2297void build_free_nids(struct f2fs_sb_info *sbi, bool sync, bool mount);

--- 514 unchanged lines hidden ---
2293void ra_node_page(struct f2fs_sb_info *sbi, nid_t nid);
2294struct page *get_node_page(struct f2fs_sb_info *sbi, pgoff_t nid);
2295struct page *get_node_page_ra(struct page *parent, int start);
2296void move_node_page(struct page *node_page, int gc_type);
2297int fsync_node_pages(struct f2fs_sb_info *sbi, struct inode *inode,
2298 struct writeback_control *wbc, bool atomic);
2299int sync_node_pages(struct f2fs_sb_info *sbi, struct writeback_control *wbc);
2300void build_free_nids(struct f2fs_sb_info *sbi, bool sync, bool mount);

--- 514 unchanged lines hidden ---