• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1  /*
2   * ifile.h - NILFS inode file
3   *
4   * Copyright (C) 2006-2008 Nippon Telegraph and Telephone Corporation.
5   *
6   * This program is free software; you can redistribute it and/or modify
7   * it under the terms of the GNU General Public License as published by
8   * the Free Software Foundation; either version 2 of the License, or
9   * (at your option) any later version.
10   *
11   * This program is distributed in the hope that it will be useful,
12   * but WITHOUT ANY WARRANTY; without even the implied warranty of
13   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14   * GNU General Public License for more details.
15   *
16   * Written by Amagai Yoshiji.
17   * Revised by Ryusuke Konishi.
18   *
19   */
20  
21  #ifndef _NILFS_IFILE_H
22  #define _NILFS_IFILE_H
23  
24  #include <linux/fs.h>
25  #include <linux/buffer_head.h>
26  #include "mdt.h"
27  #include "alloc.h"
28  
29  
30  static inline struct nilfs_inode *
nilfs_ifile_map_inode(struct inode * ifile,ino_t ino,struct buffer_head * ibh)31  nilfs_ifile_map_inode(struct inode *ifile, ino_t ino, struct buffer_head *ibh)
32  {
33  	void *kaddr = kmap(ibh->b_page);
34  
35  	return nilfs_palloc_block_get_entry(ifile, ino, ibh, kaddr);
36  }
37  
nilfs_ifile_unmap_inode(struct inode * ifile,ino_t ino,struct buffer_head * ibh)38  static inline void nilfs_ifile_unmap_inode(struct inode *ifile, ino_t ino,
39  					   struct buffer_head *ibh)
40  {
41  	kunmap(ibh->b_page);
42  }
43  
44  int nilfs_ifile_create_inode(struct inode *, ino_t *, struct buffer_head **);
45  int nilfs_ifile_delete_inode(struct inode *, ino_t);
46  int nilfs_ifile_get_inode_block(struct inode *, ino_t, struct buffer_head **);
47  
48  int nilfs_ifile_count_free_inodes(struct inode *, u64 *, u64 *);
49  
50  int nilfs_ifile_read(struct super_block *sb, struct nilfs_root *root,
51  		     size_t inode_size, struct nilfs_inode *raw_inode,
52  		     struct inode **inodep);
53  
54  #endif	/* _NILFS_IFILE_H */
55