Commit bcd6d4ecf6868ed57d4daae5d48e52d0752566d2

Authored by Christoph Hellwig
Committed by Linus Torvalds
1 parent 3542ae4c17

ufs: move non-layout parts of ufs_fs.h to fs/ufs/

Move prototypes and in-core structures to fs/ufs/ similar to what most
other filesystems already do.

I made little modifications: move also ufs debug macros and
mount options constants into fs/ufs/ufs.h, this stuff
also private for ufs.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Evgeniy Dushistov <dushistov@mail.ru>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

Showing 15 changed files with 171 additions and 198 deletions Side-by-side Diff

... ... @@ -19,6 +19,7 @@
19 19 #include <linux/bitops.h>
20 20 #include <asm/byteorder.h>
21 21  
  22 +#include "ufs.h"
22 23 #include "swab.h"
23 24 #include "util.h"
24 25  
... ... @@ -17,6 +17,7 @@
17 17  
18 18 #include <asm/byteorder.h>
19 19  
  20 +#include "ufs.h"
20 21 #include "swab.h"
21 22 #include "util.h"
22 23  
... ... @@ -21,6 +21,7 @@
21 21 #include <linux/ufs_fs.h>
22 22 #include <linux/swap.h>
23 23  
  24 +#include "ufs.h"
24 25 #include "swab.h"
25 26 #include "util.h"
26 27  
... ... @@ -27,6 +27,9 @@
27 27 #include <linux/ufs_fs.h>
28 28 #include <linux/buffer_head.h> /* for sync_mapping_buffers() */
29 29  
  30 +#include "ufs.h"
  31 +
  32 +
30 33 static int ufs_sync_file(struct file *file, struct dentry *dentry, int datasync)
31 34 {
32 35 struct inode *inode = dentry->d_inode;
... ... @@ -34,6 +34,7 @@
34 34 #include <linux/bitops.h>
35 35 #include <asm/byteorder.h>
36 36  
  37 +#include "ufs.h"
37 38 #include "swab.h"
38 39 #include "util.h"
39 40  
... ... @@ -38,6 +38,7 @@
38 38 #include <linux/smp_lock.h>
39 39 #include <linux/buffer_head.h>
40 40  
  41 +#include "ufs.h"
41 42 #include "swab.h"
42 43 #include "util.h"
43 44  
... ... @@ -31,7 +31,7 @@
31 31 #include <linux/fs.h>
32 32 #include <linux/ufs_fs.h>
33 33 #include <linux/smp_lock.h>
34   -#include "swab.h" /* will go away - see comment in mknod() */
  34 +#include "ufs.h"
35 35 #include "util.h"
36 36  
37 37 static inline int ufs_add_nondir(struct dentry *dentry, struct inode *inode)
... ... @@ -110,7 +110,6 @@
110 110 err = PTR_ERR(inode);
111 111 if (!IS_ERR(inode)) {
112 112 init_special_inode(inode, mode, rdev);
113   - /* NOTE: that'll go when we get wide dev_t */
114 113 ufs_set_inode_dev(inode->i_sb, UFS_I(inode), rdev);
115 114 mark_inode_dirty(inode);
116 115 lock_kernel();
... ... @@ -91,6 +91,7 @@
91 91 #include <linux/mount.h>
92 92 #include <linux/seq_file.h>
93 93  
  94 +#include "ufs.h"
94 95 #include "swab.h"
95 96 #include "util.h"
96 97  
... ... @@ -28,6 +28,8 @@
28 28 #include <linux/fs.h>
29 29 #include <linux/namei.h>
30 30 #include <linux/ufs_fs.h>
  31 +#include "ufs.h"
  32 +
31 33  
32 34 static void *ufs_follow_link(struct dentry *dentry, struct nameidata *nd)
33 35 {
... ... @@ -46,6 +46,7 @@
46 46 #include <linux/blkdev.h>
47 47 #include <linux/sched.h>
48 48  
  49 +#include "ufs.h"
49 50 #include "swab.h"
50 51 #include "util.h"
51 52  
  1 +#ifndef _UFS_UFS_H
  2 +#define _UFS_UFS_H 1
  3 +
  4 +#define UFS_MAX_GROUP_LOADED 8
  5 +#define UFS_CGNO_EMPTY ((unsigned)-1)
  6 +
  7 +struct ufs_sb_private_info;
  8 +struct ufs_cg_private_info;
  9 +struct ufs_csum;
  10 +
  11 +struct ufs_sb_info {
  12 + struct ufs_sb_private_info * s_uspi;
  13 + struct ufs_csum * s_csp;
  14 + unsigned s_bytesex;
  15 + unsigned s_flags;
  16 + struct buffer_head ** s_ucg;
  17 + struct ufs_cg_private_info * s_ucpi[UFS_MAX_GROUP_LOADED];
  18 + unsigned s_cgno[UFS_MAX_GROUP_LOADED];
  19 + unsigned short s_cg_loaded;
  20 + unsigned s_mount_opt;
  21 +};
  22 +
  23 +struct ufs_inode_info {
  24 + union {
  25 + __fs32 i_data[15];
  26 + __u8 i_symlink[4*15];
  27 + __fs64 u2_i_data[15];
  28 + } i_u1;
  29 + __u32 i_flags;
  30 + __u32 i_shadow;
  31 + __u32 i_unused1;
  32 + __u32 i_unused2;
  33 + __u32 i_oeftflag;
  34 + __u16 i_osync;
  35 + __u64 i_lastfrag;
  36 + __u32 i_dir_start_lookup;
  37 + struct inode vfs_inode;
  38 +};
  39 +
  40 +/* mount options */
  41 +#define UFS_MOUNT_ONERROR 0x0000000F
  42 +#define UFS_MOUNT_ONERROR_PANIC 0x00000001
  43 +#define UFS_MOUNT_ONERROR_LOCK 0x00000002
  44 +#define UFS_MOUNT_ONERROR_UMOUNT 0x00000004
  45 +#define UFS_MOUNT_ONERROR_REPAIR 0x00000008
  46 +
  47 +#define UFS_MOUNT_UFSTYPE 0x0000FFF0
  48 +#define UFS_MOUNT_UFSTYPE_OLD 0x00000010
  49 +#define UFS_MOUNT_UFSTYPE_44BSD 0x00000020
  50 +#define UFS_MOUNT_UFSTYPE_SUN 0x00000040
  51 +#define UFS_MOUNT_UFSTYPE_NEXTSTEP 0x00000080
  52 +#define UFS_MOUNT_UFSTYPE_NEXTSTEP_CD 0x00000100
  53 +#define UFS_MOUNT_UFSTYPE_OPENSTEP 0x00000200
  54 +#define UFS_MOUNT_UFSTYPE_SUNx86 0x00000400
  55 +#define UFS_MOUNT_UFSTYPE_HP 0x00000800
  56 +#define UFS_MOUNT_UFSTYPE_UFS2 0x00001000
  57 +#define UFS_MOUNT_UFSTYPE_SUNOS 0x00002000
  58 +
  59 +#define ufs_clear_opt(o,opt) o &= ~UFS_MOUNT_##opt
  60 +#define ufs_set_opt(o,opt) o |= UFS_MOUNT_##opt
  61 +#define ufs_test_opt(o,opt) ((o) & UFS_MOUNT_##opt)
  62 +
  63 +/*
  64 + * Debug code
  65 + */
  66 +#ifdef CONFIG_UFS_DEBUG
  67 +# define UFSD(f, a...) { \
  68 + printk ("UFSD (%s, %d): %s:", \
  69 + __FILE__, __LINE__, __FUNCTION__); \
  70 + printk (f, ## a); \
  71 + }
  72 +#else
  73 +# define UFSD(f, a...) /**/
  74 +#endif
  75 +
  76 +/* balloc.c */
  77 +extern void ufs_free_fragments (struct inode *, u64, unsigned);
  78 +extern void ufs_free_blocks (struct inode *, u64, unsigned);
  79 +extern u64 ufs_new_fragments(struct inode *, void *, u64, u64,
  80 + unsigned, int *, struct page *);
  81 +
  82 +/* cylinder.c */
  83 +extern struct ufs_cg_private_info * ufs_load_cylinder (struct super_block *, unsigned);
  84 +extern void ufs_put_cylinder (struct super_block *, unsigned);
  85 +
  86 +/* dir.c */
  87 +extern const struct inode_operations ufs_dir_inode_operations;
  88 +extern int ufs_add_link (struct dentry *, struct inode *);
  89 +extern ino_t ufs_inode_by_name(struct inode *, struct dentry *);
  90 +extern int ufs_make_empty(struct inode *, struct inode *);
  91 +extern struct ufs_dir_entry *ufs_find_entry(struct inode *, struct dentry *, struct page **);
  92 +extern int ufs_delete_entry(struct inode *, struct ufs_dir_entry *, struct page *);
  93 +extern int ufs_empty_dir (struct inode *);
  94 +extern struct ufs_dir_entry *ufs_dotdot(struct inode *, struct page **);
  95 +extern void ufs_set_link(struct inode *dir, struct ufs_dir_entry *de,
  96 + struct page *page, struct inode *inode);
  97 +
  98 +/* file.c */
  99 +extern const struct inode_operations ufs_file_inode_operations;
  100 +extern const struct file_operations ufs_file_operations;
  101 +
  102 +extern const struct address_space_operations ufs_aops;
  103 +
  104 +/* ialloc.c */
  105 +extern void ufs_free_inode (struct inode *inode);
  106 +extern struct inode * ufs_new_inode (struct inode *, int);
  107 +
  108 +/* inode.c */
  109 +extern void ufs_read_inode (struct inode *);
  110 +extern void ufs_put_inode (struct inode *);
  111 +extern int ufs_write_inode (struct inode *, int);
  112 +extern int ufs_sync_inode (struct inode *);
  113 +extern void ufs_delete_inode (struct inode *);
  114 +extern struct buffer_head * ufs_bread (struct inode *, unsigned, int, int *);
  115 +extern int ufs_getfrag_block (struct inode *inode, sector_t fragment, struct buffer_head *bh_result, int create);
  116 +
  117 +/* namei.c */
  118 +extern const struct file_operations ufs_dir_operations;
  119 +
  120 +/* super.c */
  121 +extern void ufs_warning (struct super_block *, const char *, const char *, ...) __attribute__ ((format (printf, 3, 4)));
  122 +extern void ufs_error (struct super_block *, const char *, const char *, ...) __attribute__ ((format (printf, 3, 4)));
  123 +extern void ufs_panic (struct super_block *, const char *, const char *, ...) __attribute__ ((format (printf, 3, 4)));
  124 +
  125 +/* symlink.c */
  126 +extern const struct inode_operations ufs_fast_symlink_inode_operations;
  127 +
  128 +/* truncate.c */
  129 +extern int ufs_truncate (struct inode *, loff_t);
  130 +
  131 +static inline struct ufs_sb_info *UFS_SB(struct super_block *sb)
  132 +{
  133 + return sb->s_fs_info;
  134 +}
  135 +
  136 +static inline struct ufs_inode_info *UFS_I(struct inode *inode)
  137 +{
  138 + return container_of(inode, struct ufs_inode_info, vfs_inode);
  139 +}
  140 +
  141 +/*
  142 + * Give cylinder group number for a file system block.
  143 + * Give cylinder group block number for a file system block.
  144 + */
  145 +/* #define ufs_dtog(d) ((d) / uspi->s_fpg) */
  146 +static inline u64 ufs_dtog(struct ufs_sb_private_info * uspi, u64 b)
  147 +{
  148 + do_div(b, uspi->s_fpg);
  149 + return b;
  150 +}
  151 +/* #define ufs_dtogd(d) ((d) % uspi->s_fpg) */
  152 +static inline u32 ufs_dtogd(struct ufs_sb_private_info * uspi, u64 b)
  153 +{
  154 + return do_div(b, uspi->s_fpg);
  155 +}
  156 +
  157 +#endif /* _UFS_UFS_H */
... ... @@ -11,6 +11,7 @@
11 11 #include <linux/ufs_fs.h>
12 12 #include <linux/buffer_head.h>
13 13  
  14 +#include "ufs.h"
14 15 #include "swab.h"
15 16 #include "util.h"
16 17  
include/linux/ufs_fs.h
... ... @@ -46,11 +46,6 @@
46 46 typedef __u16 __bitwise __fs16;
47 47 #endif
48 48  
49   -#ifdef __KERNEL__
50   -#include <linux/ufs_fs_i.h>
51   -#include <linux/ufs_fs_sb.h>
52   -#endif
53   -
54 49 #define UFS_BBLOCK 0
55 50 #define UFS_BBSIZE 8192
56 51 #define UFS_SBLOCK 8192
... ... @@ -188,29 +183,6 @@
188 183 #define UFS_42INODEFMT -1
189 184 #define UFS_44INODEFMT 2
190 185  
191   -/* mount options */
192   -#define UFS_MOUNT_ONERROR 0x0000000F
193   -#define UFS_MOUNT_ONERROR_PANIC 0x00000001
194   -#define UFS_MOUNT_ONERROR_LOCK 0x00000002
195   -#define UFS_MOUNT_ONERROR_UMOUNT 0x00000004
196   -#define UFS_MOUNT_ONERROR_REPAIR 0x00000008
197   -
198   -#define UFS_MOUNT_UFSTYPE 0x0000FFF0
199   -#define UFS_MOUNT_UFSTYPE_OLD 0x00000010
200   -#define UFS_MOUNT_UFSTYPE_44BSD 0x00000020
201   -#define UFS_MOUNT_UFSTYPE_SUN 0x00000040
202   -#define UFS_MOUNT_UFSTYPE_NEXTSTEP 0x00000080
203   -#define UFS_MOUNT_UFSTYPE_NEXTSTEP_CD 0x00000100
204   -#define UFS_MOUNT_UFSTYPE_OPENSTEP 0x00000200
205   -#define UFS_MOUNT_UFSTYPE_SUNx86 0x00000400
206   -#define UFS_MOUNT_UFSTYPE_HP 0x00000800
207   -#define UFS_MOUNT_UFSTYPE_UFS2 0x00001000
208   -#define UFS_MOUNT_UFSTYPE_SUNOS 0x00002000
209   -
210   -#define ufs_clear_opt(o,opt) o &= ~UFS_MOUNT_##opt
211   -#define ufs_set_opt(o,opt) o |= UFS_MOUNT_##opt
212   -#define ufs_test_opt(o,opt) ((o) & UFS_MOUNT_##opt)
213   -
214 186 /*
215 187 * MINFREE gives the minimum acceptable percentage of file system
216 188 * blocks which may be free. If the freelist drops below this level
... ... @@ -225,19 +197,6 @@
225 197 */
226 198 #define UFS_MINFREE 5
227 199 #define UFS_DEFAULTOPT UFS_OPTTIME
228   -
229   -/*
230   - * Debug code
231   - */
232   -#ifdef CONFIG_UFS_DEBUG
233   -# define UFSD(f, a...) { \
234   - printk ("UFSD (%s, %d): %s:", \
235   - __FILE__, __LINE__, __FUNCTION__); \
236   - printk (f, ## a); \
237   - }
238   -#else
239   -# define UFSD(f, a...) /**/
240   -#endif
241 200  
242 201 /*
243 202 * Turn file system block numbers into disk block addresses.
... ... @@ -990,91 +949,6 @@
990 949 __fs32 fs_magic;
991 950 __u8 fs_space[1];
992 951 };
993   -
994   -#ifdef __KERNEL__
995   -
996   -/* balloc.c */
997   -extern void ufs_free_fragments (struct inode *, u64, unsigned);
998   -extern void ufs_free_blocks (struct inode *, u64, unsigned);
999   -extern u64 ufs_new_fragments(struct inode *, void *, u64, u64,
1000   - unsigned, int *, struct page *);
1001   -
1002   -/* cylinder.c */
1003   -extern struct ufs_cg_private_info * ufs_load_cylinder (struct super_block *, unsigned);
1004   -extern void ufs_put_cylinder (struct super_block *, unsigned);
1005   -
1006   -/* dir.c */
1007   -extern const struct inode_operations ufs_dir_inode_operations;
1008   -extern int ufs_add_link (struct dentry *, struct inode *);
1009   -extern ino_t ufs_inode_by_name(struct inode *, struct dentry *);
1010   -extern int ufs_make_empty(struct inode *, struct inode *);
1011   -extern struct ufs_dir_entry *ufs_find_entry(struct inode *, struct dentry *, struct page **);
1012   -extern int ufs_delete_entry(struct inode *, struct ufs_dir_entry *, struct page *);
1013   -extern int ufs_empty_dir (struct inode *);
1014   -extern struct ufs_dir_entry *ufs_dotdot(struct inode *, struct page **);
1015   -extern void ufs_set_link(struct inode *dir, struct ufs_dir_entry *de,
1016   - struct page *page, struct inode *inode);
1017   -
1018   -/* file.c */
1019   -extern const struct inode_operations ufs_file_inode_operations;
1020   -extern const struct file_operations ufs_file_operations;
1021   -
1022   -extern const struct address_space_operations ufs_aops;
1023   -
1024   -/* ialloc.c */
1025   -extern void ufs_free_inode (struct inode *inode);
1026   -extern struct inode * ufs_new_inode (struct inode *, int);
1027   -
1028   -/* inode.c */
1029   -extern void ufs_read_inode (struct inode *);
1030   -extern void ufs_put_inode (struct inode *);
1031   -extern int ufs_write_inode (struct inode *, int);
1032   -extern int ufs_sync_inode (struct inode *);
1033   -extern void ufs_delete_inode (struct inode *);
1034   -extern struct buffer_head * ufs_bread (struct inode *, unsigned, int, int *);
1035   -extern int ufs_getfrag_block (struct inode *inode, sector_t fragment, struct buffer_head *bh_result, int create);
1036   -
1037   -/* namei.c */
1038   -extern const struct file_operations ufs_dir_operations;
1039   -
1040   -/* super.c */
1041   -extern void ufs_warning (struct super_block *, const char *, const char *, ...) __attribute__ ((format (printf, 3, 4)));
1042   -extern void ufs_error (struct super_block *, const char *, const char *, ...) __attribute__ ((format (printf, 3, 4)));
1043   -extern void ufs_panic (struct super_block *, const char *, const char *, ...) __attribute__ ((format (printf, 3, 4)));
1044   -
1045   -/* symlink.c */
1046   -extern const struct inode_operations ufs_fast_symlink_inode_operations;
1047   -
1048   -/* truncate.c */
1049   -extern int ufs_truncate (struct inode *, loff_t);
1050   -
1051   -static inline struct ufs_sb_info *UFS_SB(struct super_block *sb)
1052   -{
1053   - return sb->s_fs_info;
1054   -}
1055   -
1056   -static inline struct ufs_inode_info *UFS_I(struct inode *inode)
1057   -{
1058   - return container_of(inode, struct ufs_inode_info, vfs_inode);
1059   -}
1060   -
1061   -/*
1062   - * Give cylinder group number for a file system block.
1063   - * Give cylinder group block number for a file system block.
1064   - */
1065   -/* #define ufs_dtog(d) ((d) / uspi->s_fpg) */
1066   -static inline u64 ufs_dtog(struct ufs_sb_private_info * uspi, u64 b)
1067   -{
1068   - do_div(b, uspi->s_fpg);
1069   - return b;
1070   -}
1071   -/* #define ufs_dtogd(d) ((d) % uspi->s_fpg) */
1072   -static inline u32 ufs_dtogd(struct ufs_sb_private_info * uspi, u64 b)
1073   -{
1074   - return do_div(b, uspi->s_fpg);
1075   -}
1076   -
1077   -#endif /* __KERNEL__ */
1078 952  
1079 953 #endif /* __LINUX_UFS_FS_H */
include/linux/ufs_fs_i.h
1   -/*
2   - * linux/include/linux/ufs_fs_i.h
3   - *
4   - * Copyright (C) 1996
5   - * Adrian Rodriguez (adrian@franklins-tower.rutgers.edu)
6   - * Laboratory for Computer Science Research Computing Facility
7   - * Rutgers, The State University of New Jersey
8   - *
9   - * NeXTstep support added on February 5th 1998 by
10   - * Niels Kristian Bech Jensen <nkbj@image.dk>.
11   - */
12   -
13   -#ifndef _LINUX_UFS_FS_I_H
14   -#define _LINUX_UFS_FS_I_H
15   -
16   -struct ufs_inode_info {
17   - union {
18   - __fs32 i_data[15];
19   - __u8 i_symlink[4*15];
20   - __fs64 u2_i_data[15];
21   - } i_u1;
22   - __u32 i_flags;
23   - __u32 i_shadow;
24   - __u32 i_unused1;
25   - __u32 i_unused2;
26   - __u32 i_oeftflag;
27   - __u16 i_osync;
28   - __u64 i_lastfrag;
29   - __u32 i_dir_start_lookup;
30   - struct inode vfs_inode;
31   -};
32   -
33   -#endif /* _LINUX_UFS_FS_I_H */
include/linux/ufs_fs_sb.h
1   -/*
2   - * linux/include/linux/ufs_fs_sb.h
3   - *
4   - * Copyright (C) 1996
5   - * Adrian Rodriguez (adrian@franklins-tower.rutgers.edu)
6   - * Laboratory for Computer Science Research Computing Facility
7   - * Rutgers, The State University of New Jersey
8   - *
9   - * $Id: ufs_fs_sb.h,v 1.8 1998/05/06 12:04:40 jj Exp $
10   - *
11   - * Write support by Daniel Pirkl <daniel.pirkl@email.cz>
12   - */
13   -
14   -#ifndef __LINUX_UFS_FS_SB_H
15   -#define __LINUX_UFS_FS_SB_H
16   -
17   -
18   -#define UFS_MAX_GROUP_LOADED 8
19   -#define UFS_CGNO_EMPTY ((unsigned)-1)
20   -
21   -struct ufs_sb_private_info;
22   -struct ufs_cg_private_info;
23   -struct ufs_csum;
24   -
25   -struct ufs_sb_info {
26   - struct ufs_sb_private_info * s_uspi;
27   - struct ufs_csum * s_csp;
28   - unsigned s_bytesex;
29   - unsigned s_flags;
30   - struct buffer_head ** s_ucg;
31   - struct ufs_cg_private_info * s_ucpi[UFS_MAX_GROUP_LOADED];
32   - unsigned s_cgno[UFS_MAX_GROUP_LOADED];
33   - unsigned short s_cg_loaded;
34   - unsigned s_mount_opt;
35   -};
36   -
37   -#endif