diff options
author | Andries Brouwer <aeb@cwi.nl> | 2007-02-12 03:52:49 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-02-12 12:48:31 -0500 |
commit | 939b00df0306bc4b5cd25c3c3c78e89b91e72fc8 (patch) | |
tree | c251dca9f3ebbebfa1f40f39716423842b247742 /fs/minix/minix.h | |
parent | b587b13a4f670ebae79ae6259cf44328455e4e69 (diff) |
[PATCH] Minix V3 support
This morning I needed to read a Minix V3 filesystem, but unfortunately my
2.6.19 did not support that, and neither did the downloaded 2.6.20rc4.
Fortunately, google told me that Daniel Aragones had already done the work,
patch found at http://www.terra.es/personal2/danarag/
Unfortunaly, looking at the patch was painful to my eyes, so I polished it
a bit before applying. The resulting kernel boots, and reads the
filesystem it needed to read.
Signed-off-by: Daniel Aragones <danarag@gmail.com>
Signed-off-by: Andries Brouwer <aeb@cwi.nl>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs/minix/minix.h')
-rw-r--r-- | fs/minix/minix.h | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/fs/minix/minix.h b/fs/minix/minix.h index c55b77cdcc8e..e016ee91d936 100644 --- a/fs/minix/minix.h +++ b/fs/minix/minix.h | |||
@@ -7,11 +7,10 @@ | |||
7 | * truncated. Else they will be disallowed (ENAMETOOLONG). | 7 | * truncated. Else they will be disallowed (ENAMETOOLONG). |
8 | */ | 8 | */ |
9 | #define NO_TRUNCATE 1 | 9 | #define NO_TRUNCATE 1 |
10 | |||
11 | #define INODE_VERSION(inode) minix_sb(inode->i_sb)->s_version | 10 | #define INODE_VERSION(inode) minix_sb(inode->i_sb)->s_version |
12 | |||
13 | #define MINIX_V1 0x0001 /* original minix fs */ | 11 | #define MINIX_V1 0x0001 /* original minix fs */ |
14 | #define MINIX_V2 0x0002 /* minix V2 fs */ | 12 | #define MINIX_V2 0x0002 /* minix V2 fs */ |
13 | #define MINIX_V3 0x0003 /* minix V3 fs */ | ||
15 | 14 | ||
16 | /* | 15 | /* |
17 | * minix fs inode data in memory | 16 | * minix fs inode data in memory |
@@ -52,12 +51,10 @@ extern struct inode * minix_new_inode(const struct inode * dir, int * error); | |||
52 | extern void minix_free_inode(struct inode * inode); | 51 | extern void minix_free_inode(struct inode * inode); |
53 | extern unsigned long minix_count_free_inodes(struct minix_sb_info *sbi); | 52 | extern unsigned long minix_count_free_inodes(struct minix_sb_info *sbi); |
54 | extern int minix_new_block(struct inode * inode); | 53 | extern int minix_new_block(struct inode * inode); |
55 | extern void minix_free_block(struct inode * inode, int block); | 54 | extern void minix_free_block(struct inode *inode, unsigned long block); |
56 | extern unsigned long minix_count_free_blocks(struct minix_sb_info *sbi); | 55 | extern unsigned long minix_count_free_blocks(struct minix_sb_info *sbi); |
57 | |||
58 | extern int minix_getattr(struct vfsmount *, struct dentry *, struct kstat *); | 56 | extern int minix_getattr(struct vfsmount *, struct dentry *, struct kstat *); |
59 | 57 | ||
60 | extern void V2_minix_truncate(struct inode *); | ||
61 | extern void V1_minix_truncate(struct inode *); | 58 | extern void V1_minix_truncate(struct inode *); |
62 | extern void V2_minix_truncate(struct inode *); | 59 | extern void V2_minix_truncate(struct inode *); |
63 | extern void minix_truncate(struct inode *); | 60 | extern void minix_truncate(struct inode *); |
@@ -65,8 +62,8 @@ extern int minix_sync_inode(struct inode *); | |||
65 | extern void minix_set_inode(struct inode *, dev_t); | 62 | extern void minix_set_inode(struct inode *, dev_t); |
66 | extern int V1_minix_get_block(struct inode *, long, struct buffer_head *, int); | 63 | extern int V1_minix_get_block(struct inode *, long, struct buffer_head *, int); |
67 | extern int V2_minix_get_block(struct inode *, long, struct buffer_head *, int); | 64 | extern int V2_minix_get_block(struct inode *, long, struct buffer_head *, int); |
68 | extern unsigned V1_minix_blocks(loff_t); | 65 | extern unsigned V1_minix_blocks(loff_t, struct super_block *); |
69 | extern unsigned V2_minix_blocks(loff_t); | 66 | extern unsigned V2_minix_blocks(loff_t, struct super_block *); |
70 | 67 | ||
71 | extern struct minix_dir_entry *minix_find_entry(struct dentry*, struct page**); | 68 | extern struct minix_dir_entry *minix_find_entry(struct dentry*, struct page**); |
72 | extern int minix_add_link(struct dentry*, struct inode*); | 69 | extern int minix_add_link(struct dentry*, struct inode*); |
@@ -76,7 +73,6 @@ extern int minix_empty_dir(struct inode*); | |||
76 | extern void minix_set_link(struct minix_dir_entry*, struct page*, struct inode*); | 73 | extern void minix_set_link(struct minix_dir_entry*, struct page*, struct inode*); |
77 | extern struct minix_dir_entry *minix_dotdot(struct inode*, struct page**); | 74 | extern struct minix_dir_entry *minix_dotdot(struct inode*, struct page**); |
78 | extern ino_t minix_inode_by_name(struct dentry*); | 75 | extern ino_t minix_inode_by_name(struct dentry*); |
79 | |||
80 | extern int minix_sync_file(struct file *, struct dentry *, int); | 76 | extern int minix_sync_file(struct file *, struct dentry *, int); |
81 | 77 | ||
82 | extern struct inode_operations minix_file_inode_operations; | 78 | extern struct inode_operations minix_file_inode_operations; |