diff options
author | Mark Fasheh <mark.fasheh@oracle.com> | 2007-03-22 19:53:23 -0400 |
---|---|---|
committer | Mark Fasheh <mark.fasheh@oracle.com> | 2007-04-26 18:07:40 -0400 |
commit | 8110b073a9135acf0a71bccfc20c0d1023f179c6 (patch) | |
tree | b668738e25648f3fcfd7b1063ab8d4948cebc668 /fs/ocfs2/inode.h | |
parent | 4f902c37727bbedbc0508a1477874c58ddcc9af8 (diff) |
ocfs2: Fix up i_blocks calculation to know about holes
Older file systems which didn't support holes did a dumb calculation of
i_blocks based on i_size. This is no longer accurate, so fix things up to
take actual allocation into account.
Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
Diffstat (limited to 'fs/ocfs2/inode.h')
-rw-r--r-- | fs/ocfs2/inode.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/fs/ocfs2/inode.h b/fs/ocfs2/inode.h index a9ced009cb9c..aa84353d0d19 100644 --- a/fs/ocfs2/inode.h +++ b/fs/ocfs2/inode.h | |||
@@ -138,4 +138,11 @@ int ocfs2_aio_write(struct file *file, struct kiocb *req, struct iocb *iocb); | |||
138 | 138 | ||
139 | void ocfs2_set_inode_flags(struct inode *inode); | 139 | void ocfs2_set_inode_flags(struct inode *inode); |
140 | 140 | ||
141 | static inline blkcnt_t ocfs2_inode_sector_count(struct inode *inode) | ||
142 | { | ||
143 | int c_to_s_bits = OCFS2_SB(inode->i_sb)->s_clustersize_bits - 9; | ||
144 | |||
145 | return (blkcnt_t)(OCFS2_I(inode)->ip_clusters << c_to_s_bits); | ||
146 | } | ||
147 | |||
141 | #endif /* OCFS2_INODE_H */ | 148 | #endif /* OCFS2_INODE_H */ |