Skip to contentSkip to conversation

struct super_block cleanup - isofs

PATCH New Brian Gerst 1 participant 1 message Mar 17, 2002

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 struct super_block cleanup - isofs

Seperates isofs_sb_info from struct super_block.

Signature · 1 line
						Brian Gerst
fs/isofs/dir.c +8 -9
diff -urN linux-2.5.7-pre2/fs/isofs/dir.c linux/fs/isofs/dir.c
@@ -110,14 +110,13 @@
 	struct buffer_head *bh = NULL;
 	int len;
 	int map;
-	int high_sierra;
 	int first_de = 1;
 	char *p = NULL;		/* Quiet GCC */
 	struct iso_directory_record *de;
+	struct isofs_sb_info *sbi = ISOFS_SB(inode->i_sb);
 
 	offset = filp->f_pos & (bufsize - 1);
 	block = filp->f_pos >> bufbits;
-	high_sierra = inode->i_sb->u.isofs_sb.s_high_sierra;
 
 	while (filp->f_pos < inode->i_size) {
 		int de_len;
@@ -166,7 +165,7 @@
 			de = tmpde;
 		}
 
-		if (de->flags[-high_sierra] & 0x80) {
+		if (de->flags[-sbi->s_high_sierra] & 0x80) {
 			first_de = 0;
 			filp->f_pos += de_len;
 			continue;
@@ -194,16 +193,16 @@
 
 		/* Handle everything else.  Do name translation if there
 		   is no Rock Ridge NM field. */
-		if (inode->i_sb->u.isofs_sb.s_unhide == 'n') {
+		if (sbi->s_unhide == 'n') {
 			/* Do not report hidden or associated files */
-			if (de->flags[-high_sierra] & 5) {
+			if (de->flags[-sbi->s_high_sierra] & 5) {
 				filp->f_pos += de_len;
 				continue;
 			}
 		}
 
 		map = 1;
-		if (inode->i_sb->u.isofs_sb.s_rock) {
+		if (sbi->s_rock) {
 			len = get_rock_ridge_filename(de, tmpname, inode);
 			if (len != 0) {		/* may be -1 */
 				p = tmpname;
@@ -212,16 +211,16 @@
 		}
 		if (map) {
 #ifdef CONFIG_JOLIET
-			if (inode->i_sb->u.isofs_sb.s_joliet_level) {
+			if (sbi->s_joliet_level) {
 				len = get_joliet_filename(de, tmpname, inode);
 				p = tmpname;
 			} else
 #endif
-			if (inode->i_sb->u.isofs_sb.s_mapping == 'a') {
+			if (sbi->s_mapping == 'a') {
 				len = get_acorn_filename(de, tmpname, inode);
 				p = tmpname;
 			} else
-			if (inode->i_sb->u.isofs_sb.s_mapping == 'n') {
+			if (sbi->s_mapping == 'n') {
 				len = isofs_name_translate(de, tmpname, inode);
 				p = tmpname;
 			} else {
fs/isofs/inode.c +84 -73

368 lines not on this page · raw message

fs/isofs/joliet.c +2 -2
diff -urN linux-2.5.7-pre2/fs/isofs/joliet.c linux/fs/isofs/joliet.c
@@ -77,8 +77,8 @@
 	struct nls_table *nls;
 	unsigned char len = 0;
 
-	utf8 = inode->i_sb->u.isofs_sb.s_utf8;
-	nls = inode->i_sb->u.isofs_sb.s_nls_iocharset;
+	utf8 = ISOFS_SB(inode->i_sb)->s_utf8;
+	nls = ISOFS_SB(inode->i_sb)->s_nls_iocharset;
 
 	if (utf8) {
 		len = wcsntombs_be(outname, de->name,
fs/isofs/namei.c +7 -6
diff -urN linux-2.5.7-pre2/fs/isofs/namei.c linux/fs/isofs/namei.c
@@ -65,6 +65,7 @@
 	unsigned char bufbits = ISOFS_BUFFER_BITS(dir);
 	unsigned int block, f_pos, offset;
 	struct buffer_head * bh = NULL;
+	struct isofs_sb_info *sbi = ISOFS_SB(dir->i_sb);
 
 	if (!ISOFS_I(dir)->i_first_extent)
 		return 0;
@@ -120,19 +121,19 @@
 		dlen = de->name_len[0];
 		dpnt = de->name;
 
-		if (dir->i_sb->u.isofs_sb.s_rock &&
+		if (sbi->s_rock &&
 		    ((i = get_rock_ridge_filename(de, tmpname, dir)))) {
 			dlen = i; 	/* possibly -1 */
 			dpnt = tmpname;
 #ifdef CONFIG_JOLIET
-		} else if (dir->i_sb->u.isofs_sb.s_joliet_level) {
+		} else if (sbi->s_joliet_level) {
 			dlen = get_joliet_filename(de, tmpname, dir);
 			dpnt = tmpname;
 #endif
-		} else if (dir->i_sb->u.isofs_sb.s_mapping == 'a') {
+		} else if (sbi->s_mapping == 'a') {
 			dlen = get_acorn_filename(de, tmpname, dir);
 			dpnt = tmpname;
-		} else if (dir->i_sb->u.isofs_sb.s_mapping == 'n') {
+		} else if (sbi->s_mapping == 'n') {
 			dlen = isofs_name_translate(de, tmpname, dir);
 			dpnt = tmpname;
 		}
@@ -142,8 +143,8 @@
 		 */
 		match = 0;
 		if (dlen > 0 &&
-		    (!(de->flags[-dir->i_sb->u.isofs_sb.s_high_sierra] & 5)
-		     || dir->i_sb->u.isofs_sb.s_unhide == 'y'))
+		    (!(de->flags[-sbi->s_high_sierra] & 5)
+		     || sbi->s_unhide == 'y'))
 		{
 			match = (isofs_cmp(dentry,dpnt,dlen) == 0);
 		}
fs/isofs/rock.c +13 -13
diff -urN linux-2.5.7-pre2/fs/isofs/rock.c linux/fs/isofs/rock.c
@@ -32,7 +32,7 @@
 #define CHECK_SP(FAIL)	       			\
       if(rr->u.SP.magic[0] != 0xbe) FAIL;	\
       if(rr->u.SP.magic[1] != 0xef) FAIL;       \
-      inode->i_sb->u.isofs_sb.s_rock_offset=rr->u.SP.skip;
+      ISOFS_SB(inode->i_sb)->s_rock_offset=rr->u.SP.skip;
 /* We define a series of macros because each function must do exactly the
    same thing in certain places.  We use the macros to ensure that everything
    is done correctly */
@@ -51,10 +51,10 @@
   if(LEN & 1) LEN++;						\
   CHR = ((unsigned char *) DE) + LEN;				\
   LEN = *((unsigned char *) DE) - LEN;                          \
-  if (inode->i_sb->u.isofs_sb.s_rock_offset!=-1)                \
+  if (ISOFS_SB(inode->i_sb)->s_rock_offset!=-1)                \
   {                                                             \
-     LEN-=inode->i_sb->u.isofs_sb.s_rock_offset;                \
-     CHR+=inode->i_sb->u.isofs_sb.s_rock_offset;                \
+     LEN-=ISOFS_SB(inode->i_sb)->s_rock_offset;                \
+     CHR+=ISOFS_SB(inode->i_sb)->s_rock_offset;                \
      if (LEN<0) LEN=0;                                          \
   }                                                             \
 }                                     
@@ -102,7 +102,7 @@
   /* Return value if we do not find appropriate record. */
   retval = isonum_733 (de->extent);
   
-  if (!inode->i_sb->u.isofs_sb.s_rock) return retval;
+  if (!ISOFS_SB(inode->i_sb)->s_rock) return retval;
 
   SETUP_ROCK_RIDGE(de, chr, len);
  repeat:
@@ -162,7 +162,7 @@
   CONTINUE_DECLS;
   int retnamlen = 0, truncate=0;
  
-  if (!inode->i_sb->u.isofs_sb.s_rock) return 0;
+  if (!ISOFS_SB(inode->i_sb)->s_rock) return 0;
   *retname = 0;
 
   SETUP_ROCK_RIDGE(de, chr, len);
@@ -234,7 +234,7 @@
   int symlink_len = 0;
   CONTINUE_DECLS;
 
-  if (!inode->i_sb->u.isofs_sb.s_rock) return 0;
+  if (!ISOFS_SB(inode->i_sb)->s_rock) return 0;
 
   SETUP_ROCK_RIDGE(de, chr, len);
   if (regard_xa)
@@ -272,7 +272,7 @@
 	CHECK_CE;
 	break;
       case SIG('E','R'):
-	inode->i_sb->u.isofs_sb.s_rock = 1;
+	ISOFS_SB(inode->i_sb)->s_rock = 1;
 	printk(KERN_DEBUG "ISO 9660 Extensions: ");
 	{ int p;
 	  for(p=0;p<rr->u.ER.len_id;p++) printk("%c",rr->u.ER.data[p]);
@@ -368,7 +368,7 @@
 	ISOFS_I(inode)->i_first_extent = isonum_733(rr->u.CL.location);
 	reloc = iget(inode->i_sb,
 		     (ISOFS_I(inode)->i_first_extent <<
-		      inode -> i_sb -> u.isofs_sb.s_log_zone_size));
+		      ISOFS_SB(inode->i_sb)->s_log_zone_size));
 	if (!reloc)
 		goto out;
 	inode->i_mode = reloc->i_mode;
@@ -385,7 +385,7 @@
 	break;
 #ifdef CONFIG_ZISOFS
       case SIG('Z','F'):
-	      if ( !inode->i_sb->u.isofs_sb.s_nocompress ) {
+	      if ( !ISOFS_SB(inode->i_sb)->s_nocompress ) {
 		      int algo;
 		      algo = isonum_721(rr->u.ZF.algorithm);
 		      if ( algo == SIG('p','z') ) {
@@ -478,8 +478,8 @@
    int result=parse_rock_ridge_inode_internal(de,inode,0);
    /* if rockridge flag was reset and we didn't look for attributes
     * behind eventual XA attributes, have a look there */
-   if ((inode->i_sb->u.isofs_sb.s_rock_offset==-1)
-       &&(inode->i_sb->u.isofs_sb.s_rock==2))
+   if ((ISOFS_SB(inode->i_sb)->s_rock_offset==-1)
+       &&(ISOFS_SB(inode->i_sb)->s_rock==2))
      {
 	result=parse_rock_ridge_inode_internal(de,inode,14);
      };
@@ -506,7 +506,7 @@
 	unsigned char *chr;
 	struct rock_ridge *rr;
 
-	if (!inode->i_sb->u.isofs_sb.s_rock)
+	if (!ISOFS_SB(inode->i_sb)->s_rock)
 		panic ("Cannot have symlink with high sierra variant of iso filesystem\n");
 
 	block = inode->i_ino >> bufbits;
include/linux/fs.h +0 -2
diff -urN linux-2.5.7-pre2/include/linux/fs.h linux/include/linux/fs.h
@@ -648,7 +648,6 @@
 #include <linux/ext3_fs_sb.h>
 #include <linux/hpfs_fs_sb.h>
 #include <linux/ntfs_fs_sb.h>
-#include <linux/iso_fs_sb.h>
 #include <linux/sysv_fs_sb.h>
 #include <linux/affs_fs_sb.h>
 #include <linux/ufs_fs_sb.h>
@@ -697,7 +696,6 @@
 		struct ext3_sb_info	ext3_sb;
 		struct hpfs_sb_info	hpfs_sb;
 		struct ntfs_sb_info	ntfs_sb;
-		struct isofs_sb_info	isofs_sb;
 		struct sysv_sb_info	sysv_sb;
 		struct affs_sb_info	affs_sb;
 		struct ufs_sb_info	ufs_sb;
include/linux/iso_fs.h +6 -1
diff -urN linux-2.5.7-pre2/include/linux/iso_fs.h linux/include/linux/iso_fs.h
@@ -160,7 +160,6 @@
 
 #define ISOFS_BUFFER_SIZE(INODE) ((INODE)->i_sb->s_blocksize)
 #define ISOFS_BUFFER_BITS(INODE) ((INODE)->i_sb->s_blocksize_bits)
-#define ISOFS_ZONE_BITS(INODE)   ((INODE)->i_sb->u.isofs_sb.s_log_zone_size)
 
 #define ISOFS_SUPER_MAGIC 0x9660
 
@@ -171,6 +170,12 @@
 #include <asm/byteorder.h>
 #include <asm/unaligned.h>
 #include <linux/iso_fs_i.h>
+#include <linux/iso_fs_sb.h>
+
+static inline struct isofs_sb_info *ISOFS_SB(struct super_block *sb)
+{
+	return sb->u.generic_sbp;
+}
 
 static inline struct iso_inode_info *ISOFS_I(struct inode *inode)
 {