diff options
author | marcin.slusarz@gmail.com <marcin.slusarz@gmail.com> | 2008-01-30 22:03:59 +0100 |
---|---|---|
committer | Jan Kara <jack@suse.cz> | 2008-04-17 14:22:29 +0200 |
commit | d652eefb70142c64495f4188883f9dfc0430a96b (patch) | |
tree | a67a3ebbc01ee7c68c8ca90f616d2a282907fe64 | |
parent | 1ab9278570077101d1e367399686be62b22c4019 (diff) |
udf: replace udf_*_offset macros with functions
- translate udf_file_entry_alloc_offset macro into function
- translate udf_ext0_offset macro into function
- add comment about crypticly named fields in struct udf_inode_info
Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com>
Signed-off-by: Jan Kara <jack@suse.cz>
-rw-r--r-- | fs/udf/udf_i.h | 4 | ||||
-rw-r--r-- | fs/udf/udfdecl.h | 29 |
2 files changed, 21 insertions, 12 deletions
diff --git a/fs/udf/udf_i.h b/fs/udf/udf_i.h index d6d9a774a1c1..4f86b1d98a5d 100644 --- a/fs/udf/udf_i.h +++ b/fs/udf/udf_i.h @@ -12,8 +12,8 @@ struct udf_inode_info { __u32 i_next_alloc_block; __u32 i_next_alloc_goal; unsigned i_alloc_type : 3; - unsigned i_efe : 1; - unsigned i_use : 1; + unsigned i_efe : 1; /* extendedFileEntry */ + unsigned i_use : 1; /* unallocSpaceEntry */ unsigned i_strat4096 : 1; unsigned reserved : 26; union { diff --git a/fs/udf/udfdecl.h b/fs/udf/udfdecl.h index 26bc9c237cb7..cc15f58d497a 100644 --- a/fs/udf/udfdecl.h +++ b/fs/udf/udfdecl.h @@ -11,6 +11,7 @@ #include "udf_sb.h" #include "udfend.h" +#include "udf_i.h" #define UDF_PREALLOCATE #define UDF_DEFAULT_PREALLOC_BLOCKS 8 @@ -42,16 +43,24 @@ do { \ #define UDF_NAME_LEN 256 #define UDF_PATH_LEN 1023 -#define udf_file_entry_alloc_offset(inode)\ - (UDF_I(inode)->i_use ?\ - sizeof(struct unallocSpaceEntry) :\ - ((UDF_I(inode)->i_efe ?\ - sizeof(struct extendedFileEntry) :\ - sizeof(struct fileEntry)) + UDF_I(inode)->i_lenEAttr)) - -#define udf_ext0_offset(inode)\ - (UDF_I(inode)->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB ?\ - udf_file_entry_alloc_offset(inode) : 0) +static inline size_t udf_file_entry_alloc_offset(struct inode *inode) +{ + struct udf_inode_info *iinfo = UDF_I(inode); + if (iinfo->i_use) + return sizeof(struct unallocSpaceEntry); + else if (iinfo->i_efe) + return sizeof(struct extendedFileEntry) + iinfo->i_lenEAttr; + else + return sizeof(struct fileEntry) + iinfo->i_lenEAttr; +} + +static inline size_t udf_ext0_offset(struct inode *inode) +{ + if (UDF_I(inode)->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB) + return udf_file_entry_alloc_offset(inode); + else + return 0; +} #define udf_get_lb_pblock(sb,loc,offset) udf_get_pblock((sb), (loc).logicalBlockNum, (loc).partitionReferenceNum, (offset)) |