]> git.neil.brown.name Git - history.git/commitdiff
[PATCH] struct super_block cleanup - ncpfs
authorBrian Gerst <bgerst@didntduck.org>
Tue, 12 Mar 2002 09:50:28 +0000 (01:50 -0800)
committerLinus Torvalds <torvalds@penguin.transmeta.com>
Tue, 12 Mar 2002 09:50:28 +0000 (01:50 -0800)
Seperates ncp_sb_info from struct super_block.

fs/ncpfs/inode.c
include/linux/fs.h
include/linux/ncp_fs.h
include/linux/ncp_fs_sb.h

index 8bdc5770fd91295005d2af79f50c2daa0f376b98..fb535b54a07081abc5dea7bb38e3ecace9ea1561 100644 (file)
@@ -315,6 +315,10 @@ static int ncp_fill_super(struct super_block *sb, void *raw_data, int silent)
 #endif
        struct ncp_entry_info finfo;
 
+       server = kmalloc(sizeof(struct ncp_server), GFP_KERNEL);
+       if (!server)
+               return -ENOMEM;
+       sb->u.generic_sbp = server;
        error = -EFAULT;
        if (raw_data == NULL)
                goto out;
@@ -520,6 +524,8 @@ out_fput:
         */
        fput(ncp_filp);
 out:
+       sb->u.generic_sbp = NULL;
+       kfree(server);
        return error;
 }
 
@@ -553,7 +559,8 @@ static void ncp_put_super(struct super_block *sb)
        if (server->auth.object_name)
                ncp_kfree_s(server->auth.object_name, server->auth.object_name_len);
        vfree(server->packet);
-
+       sb->u.generic_sbp = NULL;
+       kfree(server);
 }
 
 static int ncp_statfs(struct super_block *sb, struct statfs *buf)
index b3a0db2d093e6cb430e623081363732108836adf..74ac6c530de3f336104dce1a377a70d84a399594 100644 (file)
@@ -667,7 +667,6 @@ struct quota_mount_options
 #include <linux/reiserfs_fs_sb.h>
 #include <linux/bfs_fs_sb.h>
 #include <linux/udf_fs_sb.h>
-#include <linux/ncp_fs_sb.h>
 #include <linux/jffs2_fs_sb.h>
 
 extern struct list_head super_blocks;
@@ -724,7 +723,6 @@ struct super_block {
                struct reiserfs_sb_info reiserfs_sb;
                struct bfs_sb_info      bfs_sb;
                struct udf_sb_info      udf_sb;
-               struct ncp_sb_info      ncpfs_sb;
                struct jffs2_sb_info    jffs2_sb;
                void                    *generic_sbp;
        } u;
index 0dd1c21dcee663868f1834e625ffe4f0a21de0f7..6597dd71259b4f05e8d9f67608df32d346277506 100644 (file)
@@ -13,6 +13,7 @@
 #include <linux/types.h>
 
 #include <linux/ncp_fs_i.h>
+#include <linux/ncp_fs_sb.h>
 #include <linux/ipx.h>
 #include <linux/ncp_no.h>
 
@@ -190,7 +191,10 @@ struct ncp_entry_info {
 #define NCP_SUPER_MAGIC  0x564c
 
 
-#define NCP_SBP(sb)            (&((sb)->u.ncpfs_sb))
+static inline struct ncp_server *NCP_SBP(struct super_block *sb)
+{
+       return sb->u.generic_sbp;
+}
 
 #define NCP_SERVER(inode)      NCP_SBP((inode)->i_sb)
 static inline struct ncp_inode_info *NCP_FINFO(struct inode *inode)
index fe250aba1c59a930bb125d0b577bc5be4f9126de..7bc6b250cdd5bed9fc10991e81758b3c548011c0 100644 (file)
@@ -81,8 +81,6 @@ struct ncp_server {
        unsigned int flags;
 };
 
-#define ncp_sb_info    ncp_server
-
 #define NCP_FLAG_UTF8  1
 
 #define NCP_CLR_FLAG(server, flag)     ((server)->flags &= ~(flag))