This patch converts the SETUP_ROCK_RIDGE macro to a proper function in
fs/isofs/rock.c.

Signed-off-by: Pekka Enberg <[EMAIL PROTECTED]>
---

 rock.c |   34 +++++++++++++++++++---------------
 1 files changed, 19 insertions(+), 15 deletions(-)

Index: 2.6/fs/isofs/rock.c
===================================================================
--- 2.6.orig/fs/isofs/rock.c    2005-03-28 16:31:53.000000000 +0300
+++ 2.6/fs/isofs/rock.c 2005-03-28 16:32:13.000000000 +0300
@@ -38,18 +38,22 @@
    same thing in certain places.  We use the macros to ensure that everything
    is done correctly */
 
-#define SETUP_ROCK_RIDGE(DE,CHR,LEN)                           \
-  {LEN= sizeof(struct iso_directory_record) + DE->name_len[0]; \
-  if(LEN & 1) LEN++;                                           \
-  CHR = ((unsigned char *) DE) + LEN;                          \
-  LEN = *((unsigned char *) DE) - LEN;                          \
-  if (LEN<0) LEN=0;                                             \
-  if (ISOFS_SB(inode->i_sb)->s_rock_offset!=-1)                \
-  {                                                             \
-     LEN-=ISOFS_SB(inode->i_sb)->s_rock_offset;                \
-     CHR+=ISOFS_SB(inode->i_sb)->s_rock_offset;                \
-     if (LEN<0) LEN=0;                                          \
-  }                                                             \
+static int setup_rock_ridge(struct iso_directory_record *de, struct inode 
*inode, unsigned char ** chr)
+{
+       int len = sizeof(struct iso_directory_record) + de->name_len[0];
+       if (len & 1)
+               len++;
+       *chr = ((unsigned char *) de) + len;
+       len = *((unsigned char *) de) - len;
+       if (len < 0)
+               len = 0;
+       if (ISOFS_SB(inode->i_sb)->s_rock_offset != -1) {
+               len -= ISOFS_SB(inode->i_sb)->s_rock_offset;
+               *chr += ISOFS_SB(inode->i_sb)->s_rock_offset;
+               if (len < 0)
+                       len = 0;
+       }
+       return len;
 }
 
 /* return length of name field; 0: not found, -1: to be ignored */
@@ -66,7 +70,7 @@
                return 0;
        *retname = 0;
 
-       SETUP_ROCK_RIDGE(de, chr, len);
+       len = setup_rock_ridge(de, inode, &chr);
       repeat:
        {
                struct rock_ridge *rr;
@@ -187,7 +191,7 @@
        if (!ISOFS_SB(inode->i_sb)->s_rock)
                return 0;
 
-       SETUP_ROCK_RIDGE(de, chr, len);
+       len = setup_rock_ridge(de, inode, &chr);
        if (regard_xa) {
                chr += 14;
                len -= 14;
@@ -589,7 +593,7 @@
        /* Now test for possible Rock Ridge extensions which will override
           some of these numbers in the inode structure. */
 
-       SETUP_ROCK_RIDGE(raw_inode, chr, len);
+       len = setup_rock_ridge(raw_inode, inode, &chr);
 
       repeat:
        while (len > 2) {       /* There may be one byte for padding somewhere 
*/
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to