public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] struct super_block cleanup - udf
@ 2002-03-17 15:20 Brian Gerst
  0 siblings, 0 replies; only message in thread
From: Brian Gerst @ 2002-03-17 15:20 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: Linux-Kernel, bfennema

[-- Attachment #1: Type: text/plain, Size: 71 bytes --]

Seperates udf_sb_info from struct super_block.

-- 

						Brian Gerst

[-- Attachment #2: sb-udf-1 --]
[-- Type: text/plain, Size: 2753 bytes --]

diff -urN linux-2.5.7-pre2/fs/udf/super.c linux/fs/udf/super.c
--- linux-2.5.7-pre2/fs/udf/super.c	Sat Mar 16 00:17:33 2002
+++ linux/fs/udf/super.c	Sat Mar 16 01:09:32 2002
@@ -1413,12 +1413,17 @@
 	struct inode *inode=NULL;
 	struct udf_options uopt;
 	lb_addr rootdir, fileset;
+	struct udf_sb_info *sbi;
 
 	uopt.flags = (1 << UDF_FLAG_USE_AD_IN_ICB) | (1 << UDF_FLAG_STRICT);
 	uopt.uid = -1;
 	uopt.gid = -1;
 	uopt.umask = 0;
 
+	sbi = kmalloc(sizeof(struct udf_sb_info), GFP_KERNEL);
+	if (!sbi)
+		return -ENOMEM;
+	sb->u.generic_sbp = sbi;
 	memset(UDF_SB(sb), 0x00, sizeof(struct udf_sb_info));
 
 #if UDFFS_RW != 1
@@ -1607,6 +1612,8 @@
 		udf_close_lvid(sb);
 	udf_release_data(UDF_SB_LVIDBH(sb));
 	UDF_SB_FREE(sb);
+	kfree(sbi);
+	sb->u.generic_sbp = NULL;
 	return -EINVAL;
 }
 
@@ -1697,6 +1704,8 @@
 		udf_close_lvid(sb);
 	udf_release_data(UDF_SB_LVIDBH(sb));
 	UDF_SB_FREE(sb);
+	kfree(sb->u.generic_sbp);
+	sb->u.generic_sbp = NULL;
 }
 
 /*
diff -urN linux-2.5.7-pre2/fs/udf/udf_sb.h linux/fs/udf/udf_sb.h
--- linux-2.5.7-pre2/fs/udf/udf_sb.h	Sat Mar 16 00:17:33 2002
+++ linux/fs/udf/udf_sb.h	Sat Mar 16 01:18:22 2002
@@ -30,6 +30,11 @@
 #define UDF_PART_FLAG_REWRITABLE	0x0040
 #define UDF_PART_FLAG_OVERWRITABLE	0x0080
 
+static inline struct udf_sb_info *UDF_SB(struct super_block *sb)
+{
+	return sb->u.generic_sbp;
+}
+
 #define UDF_SB_FREE(X)\
 {\
 	if (UDF_SB(X))\
@@ -39,7 +44,6 @@
 		UDF_SB_PARTMAPS(X) = NULL;\
 	}\
 }
-#define UDF_SB(X)	(&((X)->u.udf_sb))
 
 #define UDF_SB_ALLOC_PARTMAPS(X,Y)\
 {\
diff -urN linux-2.5.7-pre2/fs/udf/udfdecl.h linux/fs/udf/udfdecl.h
--- linux-2.5.7-pre2/fs/udf/udfdecl.h	Sat Mar 16 00:17:33 2002
+++ linux/fs/udf/udfdecl.h	Sat Mar 16 01:16:39 2002
@@ -8,6 +8,8 @@
 #include <linux/fs.h>
 #include <linux/config.h>
 #include <linux/types.h>
+#include <linux/udf_fs_i.h>
+#include <linux/udf_fs_sb.h>
 
 #ifndef LINUX_VERSION_CODE
 #include <linux/version.h>
@@ -15,8 +17,6 @@
 
 #if !defined(CONFIG_UDF_FS) && !defined(CONFIG_UDF_FS_MODULE)
 #define CONFIG_UDF_FS_MODULE
-#include <linux/udf_fs_i.h>
-#include <linux/udf_fs_sb.h>
 #endif
 
 #include "udfend.h"
diff -urN linux-2.5.7-pre2/include/linux/fs.h linux/include/linux/fs.h
--- linux-2.5.7-pre2/include/linux/fs.h	Sat Mar 16 00:17:34 2002
+++ linux/include/linux/fs.h	Sat Mar 16 01:12:41 2002
@@ -657,7 +657,6 @@
 #include <linux/adfs_fs_sb.h>
 #include <linux/reiserfs_fs_sb.h>
 #include <linux/bfs_fs_sb.h>
-#include <linux/udf_fs_sb.h>
 #include <linux/jffs2_fs_sb.h>
 
 extern struct list_head super_blocks;
@@ -707,7 +706,6 @@
 		struct adfs_sb_info	adfs_sb;
 		struct reiserfs_sb_info	reiserfs_sb;
 		struct bfs_sb_info	bfs_sb;
-		struct udf_sb_info	udf_sb;
 		struct jffs2_sb_info	jffs2_sb;
 		void			*generic_sbp;
 	} u;

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2002-03-17 15:21 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-03-17 15:20 [PATCH] struct super_block cleanup - udf Brian Gerst

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox