Blame view

fs/xfs/xfs_rw.h 2.47 KB
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
1
  /*
1e69dd0eb   Nathan Scott   [XFS] Push some c...
2
   * Copyright (c) 2000-2006 Silicon Graphics, Inc.
7b7187698   Nathan Scott   [XFS] Update lice...
3
   * All Rights Reserved.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
4
   *
7b7187698   Nathan Scott   [XFS] Update lice...
5
6
   * This program is free software; you can redistribute it and/or
   * modify it under the terms of the GNU General Public License as
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
7
8
   * published by the Free Software Foundation.
   *
7b7187698   Nathan Scott   [XFS] Update lice...
9
10
11
12
   * This program is distributed in the hope that it would be useful,
   * but WITHOUT ANY WARRANTY; without even the implied warranty of
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   * GNU General Public License for more details.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
13
   *
7b7187698   Nathan Scott   [XFS] Update lice...
14
15
16
   * You should have received a copy of the GNU General Public License
   * along with this program; if not, write the Free Software Foundation,
   * Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
17
18
19
20
21
22
23
24
25
   */
  #ifndef	__XFS_RW_H__
  #define	__XFS_RW_H__
  
  struct xfs_buf;
  struct xfs_inode;
  struct xfs_mount;
  
  /*
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
26
27
28
29
30
   * Convert the given file system block to a disk block.
   * We have to treat it differently based on whether the
   * file is a real time file or not, because the bmap code
   * does.
   */
a844f4510   Nathan Scott   [XFS] Remove xfs_...
31
32
33
  static inline xfs_daddr_t
  xfs_fsb_to_db(struct xfs_inode *ip, xfs_fsblock_t fsb)
  {
71ddabb94   Eric Sandeen   [XFS] optimize XF...
34
  	return (XFS_IS_REALTIME_INODE(ip) ? \
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
35
  		 (xfs_daddr_t)XFS_FSB_TO_BB((ip)->i_mount, (fsb)) : \
a844f4510   Nathan Scott   [XFS] Remove xfs_...
36
37
  		 XFS_FSB_TO_DADDR((ip)->i_mount, (fsb)));
  }
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
38
39
  
  /*
92dfe8d26   David Chinner   [XFS] Make hole p...
40
41
42
43
   * Flags for xfs_free_eofblocks
   */
  #define XFS_FREE_EOF_LOCK	(1<<0)
  #define XFS_FREE_EOF_NOLOCK	(1<<1)
957d0ebed   David Chinner   [XFS] Cleanup ino...
44
45
46
47
48
49
50
51
52
  
  /*
   * helper function to extract extent size hint from inode
   */
  STATIC_INLINE xfs_extlen_t
  xfs_get_extsz_hint(
  	xfs_inode_t	*ip)
  {
  	xfs_extlen_t	extsz;
71ddabb94   Eric Sandeen   [XFS] optimize XF...
53
  	if (unlikely(XFS_IS_REALTIME_INODE(ip))) {
957d0ebed   David Chinner   [XFS] Cleanup ino...
54
55
56
57
58
59
60
61
62
63
  		extsz = (ip->i_d.di_flags & XFS_DIFLAG_EXTSIZE)
  				? ip->i_d.di_extsize
  				: ip->i_mount->m_sb.sb_rextsize;
  		ASSERT(extsz);
  	} else {
  		extsz = (ip->i_d.di_flags & XFS_DIFLAG_EXTSIZE)
  				? ip->i_d.di_extsize : 0;
  	}
  	return extsz;
  }
92dfe8d26   David Chinner   [XFS] Make hole p...
64
  /*
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
65
66
   * Prototypes for functions in xfs_rw.c.
   */
a844f4510   Nathan Scott   [XFS] Remove xfs_...
67
  extern int xfs_write_clear_setuid(struct xfs_inode *ip);
1e69dd0eb   Nathan Scott   [XFS] Push some c...
68
  extern int xfs_write_sync_logforce(struct xfs_mount *mp, struct xfs_inode *ip);
a844f4510   Nathan Scott   [XFS] Remove xfs_...
69
70
71
72
73
74
75
76
  extern int xfs_bwrite(struct xfs_mount *mp, struct xfs_buf *bp);
  extern int xfs_bioerror(struct xfs_buf *bp);
  extern int xfs_bioerror_relse(struct xfs_buf *bp);
  extern int xfs_read_buf(struct xfs_mount *mp, xfs_buftarg_t *btp,
  			xfs_daddr_t blkno, int len, uint flags,
  			struct xfs_buf **bpp);
  extern void xfs_ioerror_alert(char *func, struct xfs_mount *mp,
  				xfs_buf_t *bp, xfs_daddr_t blkno);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
77
78
79
80
  
  /*
   * Prototypes for functions in xfs_vnodeops.c.
   */
92dfe8d26   David Chinner   [XFS] Make hole p...
81
82
  extern int xfs_free_eofblocks(struct xfs_mount *mp, struct xfs_inode *ip,
  			int flags);
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
83
84
  
  #endif /* __XFS_RW_H__ */