diff options
author | Christoph Hellwig <hch@tuxera.com> | 2010-09-30 23:43:31 -0400 |
---|---|---|
committer | Christoph Hellwig <hch@lst.de> | 2010-09-30 23:43:31 -0400 |
commit | 6af502de224c3742936d54eee7e3690c09822934 (patch) | |
tree | 9988331693952348503d64764ff81dc3b5d801ab /fs/hfsplus/hfsplus_fs.h | |
parent | dd73a01a30d729e8fa6f829c4582650e258e36f9 (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.h | 8 |
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 | ||
193 | struct hfs_find_data { | 193 | struct 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 | |
383 | static inline struct hfsplus_inode_info *HFSPLUS_I(struct inode *inode) | 383 | static 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); }) |