aboutsummaryrefslogtreecommitdiffstats
path: root/fs/hfsplus/hfsplus_fs.h
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@tuxera.com>2010-09-30 23:43:31 -0400
committerChristoph Hellwig <hch@lst.de>2010-09-30 23:43:31 -0400
commit6af502de224c3742936d54eee7e3690c09822934 (patch)
tree9988331693952348503d64764ff81dc3b5d801ab /fs/hfsplus/hfsplus_fs.h
parentdd73a01a30d729e8fa6f829c4582650e258e36f9 (diff)
hfsplus: fix HFSPLUS_I calling convention
HFSPLUS_I doesn't return a pointer to the hfsplus-specific inode information like all other FOO_I macros, but dereference the pointer in a way that made it look like a direct struct derefence. This only works as long as the HFSPLUS_I macro is used directly and prevents us from keepig a local hfsplus_inode_info pointer. Fix the calling convention and introduce a local hip variable in all functions that use it constantly. Signed-off-by: Christoph Hellwig <hch@tuxera.com>
Diffstat (limited to 'fs/hfsplus/hfsplus_fs.h')
-rw-r--r--fs/hfsplus/hfsplus_fs.h8
1 files changed, 3 insertions, 5 deletions
diff --git a/fs/hfsplus/hfsplus_fs.h b/fs/hfsplus/hfsplus_fs.h
index 55f42b49f0f1..169cef964b51 100644
--- a/fs/hfsplus/hfsplus_fs.h
+++ b/fs/hfsplus/hfsplus_fs.h
@@ -187,8 +187,8 @@ struct hfsplus_inode_info {
187#define HFSPLUS_FLG_EXT_DIRTY 0x0002 187#define HFSPLUS_FLG_EXT_DIRTY 0x0002
188#define HFSPLUS_FLG_EXT_NEW 0x0004 188#define HFSPLUS_FLG_EXT_NEW 0x0004
189 189
190#define HFSPLUS_IS_DATA(inode) (!(HFSPLUS_I(inode).flags & HFSPLUS_FLG_RSRC)) 190#define HFSPLUS_IS_DATA(inode) (!(HFSPLUS_I(inode)->flags & HFSPLUS_FLG_RSRC))
191#define HFSPLUS_IS_RSRC(inode) (HFSPLUS_I(inode).flags & HFSPLUS_FLG_RSRC) 191#define HFSPLUS_IS_RSRC(inode) (HFSPLUS_I(inode)->flags & HFSPLUS_FLG_RSRC)
192 192
193struct hfs_find_data { 193struct hfs_find_data {
194 /* filled by caller */ 194 /* filled by caller */
@@ -379,13 +379,11 @@ static inline struct hfsplus_sb_info *HFSPLUS_SB(struct super_block *sb)
379{ 379{
380 return sb->s_fs_info; 380 return sb->s_fs_info;
381} 381}
382/* 382
383static inline struct hfsplus_inode_info *HFSPLUS_I(struct inode *inode) 383static inline struct hfsplus_inode_info *HFSPLUS_I(struct inode *inode)
384{ 384{
385 return list_entry(inode, struct hfsplus_inode_info, vfs_inode); 385 return list_entry(inode, struct hfsplus_inode_info, vfs_inode);
386} 386}
387*/
388#define HFSPLUS_I(inode) (*list_entry(inode, struct hfsplus_inode_info, vfs_inode))
389 387
390#if 1 388#if 1
391#define hfsplus_kmap(p) ({ struct page *__p = (p); kmap(__p); }) 389#define hfsplus_kmap(p) ({ struct page *__p = (p); kmap(__p); })