Commit bcd6d4ecf6868ed57d4daae5d48e52d0752566d2
Committed by
Linus Torvalds
1 parent
3542ae4c17
Exists in
master
and in
7 other branches
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
fs/ufs/balloc.c
fs/ufs/cylinder.c
fs/ufs/dir.c
fs/ufs/file.c
... | ... | @@ -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; |
fs/ufs/ialloc.c
fs/ufs/inode.c
fs/ufs/namei.c
... | ... | @@ -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(); |
fs/ufs/super.c
fs/ufs/symlink.c
fs/ufs/truncate.c
fs/ufs/ufs.h
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 */ |
fs/ufs/util.c
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 |