diff options
author | Jaegeuk Kim <jaegeuk@kernel.org> | 2014-10-18 22:52:52 -0700 |
---|---|---|
committer | Jaegeuk Kim <jaegeuk@kernel.org> | 2014-11-03 16:07:34 -0800 |
commit | 7b3cd7d6f026784b1a2a74b6e207b26253d9d780 (patch) | |
tree | 25d134417cd0a8cedb380af01c252e8f127f4c8d /fs/f2fs/f2fs.h | |
parent | 5ab18570b85cf3071875a36b88bc5ed27d0b6ef7 (diff) | |
download | op-kernel-dev-7b3cd7d6f026784b1a2a74b6e207b26253d9d780.zip op-kernel-dev-7b3cd7d6f026784b1a2a74b6e207b26253d9d780.tar.gz |
f2fs: introduce f2fs_dentry_ptr structure for code clean-up
This patch introduces f2fs_dentry_ptr structure for the use of a function
parameter in inline_dentry operations.
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Diffstat (limited to 'fs/f2fs/f2fs.h')
-rw-r--r-- | fs/f2fs/f2fs.h | 35 |
1 files changed, 30 insertions, 5 deletions
diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h index 3b0f490..f7bbfc7 100644 --- a/fs/f2fs/f2fs.h +++ b/fs/f2fs/f2fs.h @@ -212,6 +212,32 @@ static inline bool __has_cursum_space(struct f2fs_summary_block *sum, int size, /* * For INODE and NODE manager */ +/* for directory operations */ +struct f2fs_dentry_ptr { + const void *bitmap; + struct f2fs_dir_entry *dentry; + __u8 (*filename)[F2FS_SLOT_LEN]; + int max; +}; + +static inline void make_dentry_ptr(struct f2fs_dentry_ptr *d, + void *src, int type) +{ + if (type == 1) { + struct f2fs_dentry_block *t = (struct f2fs_dentry_block *)src; + d->max = NR_DENTRY_IN_BLOCK; + d->bitmap = &t->dentry_bitmap; + d->dentry = t->dentry; + d->filename = t->filename; + } else { + struct f2fs_inline_dentry *t = (struct f2fs_inline_dentry *)src; + d->max = NR_INLINE_DENTRY; + d->bitmap = &t->dentry_bitmap; + d->dentry = t->dentry; + d->filename = t->filename; + } +} + /* * XATTR_NODE_OFFSET stores xattrs to one node block per file keeping -1 * as its node offset to distinguish from index node blocks. @@ -1245,11 +1271,10 @@ struct dentry *f2fs_get_parent(struct dentry *child); */ extern unsigned char f2fs_filetype_table[F2FS_FT_MAX]; void set_de_type(struct f2fs_dir_entry *, struct inode *); -struct f2fs_dir_entry *find_target_dentry(struct qstr *, int *, const void *, - struct f2fs_dir_entry *, __u8 (*)[F2FS_SLOT_LEN]); -bool f2fs_fill_dentries(struct dir_context *, - const void *, struct f2fs_dir_entry *, - __u8 (*)[F2FS_SLOT_LEN], int, unsigned int); +struct f2fs_dir_entry *find_target_dentry(struct qstr *, int *, + struct f2fs_dentry_ptr *); +bool f2fs_fill_dentries(struct dir_context *, struct f2fs_dentry_ptr *, + unsigned int); struct page *init_inode_metadata(struct inode *, struct inode *, const struct qstr *, struct page *); void update_parent_metadata(struct inode *, struct inode *, unsigned int); |