Răsfoiți Sursa

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>
marcin.slusarz@gmail.com 17 ani în urmă
părinte
comite
d652eefb70
2 a modificat fișierele cu 21 adăugiri și 12 ștergeri
  1. 2 2
      fs/udf/udf_i.h
  2. 19 10
      fs/udf/udfdecl.h

+ 2 - 2
fs/udf/udf_i.h

@@ -12,8 +12,8 @@ struct udf_inode_info {
 	__u32			i_next_alloc_block;
 	__u32			i_next_alloc_block;
 	__u32			i_next_alloc_goal;
 	__u32			i_next_alloc_goal;
 	unsigned		i_alloc_type : 3;
 	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		i_strat4096 : 1;
 	unsigned		reserved : 26;
 	unsigned		reserved : 26;
 	union {
 	union {

+ 19 - 10
fs/udf/udfdecl.h

@@ -11,6 +11,7 @@
 
 
 #include "udf_sb.h"
 #include "udf_sb.h"
 #include "udfend.h"
 #include "udfend.h"
+#include "udf_i.h"
 
 
 #define UDF_PREALLOCATE
 #define UDF_PREALLOCATE
 #define UDF_DEFAULT_PREALLOC_BLOCKS	8
 #define UDF_DEFAULT_PREALLOC_BLOCKS	8
@@ -42,16 +43,24 @@ do { \
 #define UDF_NAME_LEN		256
 #define UDF_NAME_LEN		256
 #define UDF_PATH_LEN		1023
 #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))
 #define udf_get_lb_pblock(sb,loc,offset) udf_get_pblock((sb), (loc).logicalBlockNum, (loc).partitionReferenceNum, (offset))