struct super_block cleanup - udf
Subsystems (2)
PATCH 1/1 struct super_block cleanup - udf
Seperates udf_sb_info from struct super_block.
Signature · 1 line
Brian Gerst
fs/udf/super.c +9 -0
@@ -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 ; }/*
fs/udf/udf_sb.h +5 -1
@@ -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 )\ {\
fs/udf/udfdecl.h +2 -2
@@ -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"
include/linux/fs.h +0 -2
@@ -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;