diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2000-01-27 01:05:20 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2000-01-27 01:05:20 +0000 |
commit | 546db14ee74118296f425f3b91634fb767d67290 (patch) | |
tree | 22b613a3da8d4bf663eec5e155af01b87fdf9094 /include/linux/fs.h | |
parent | 1e25e41c4f5474e14452094492dbc169b800e4c8 (diff) |
Merge with Linux 2.3.23. The new bootmem stuff has broken various
platforms. At this time I've only verified that IP22 support compiles
and IP27 actually works.
Diffstat (limited to 'include/linux/fs.h')
-rw-r--r-- | include/linux/fs.h | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/include/linux/fs.h b/include/linux/fs.h index 6d88414ea..c6c7d76d2 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -323,6 +323,11 @@ struct iattr { #include <linux/quota.h> #include <linux/mount.h> +/* + * oh the beauties of C type declarations. + */ +struct page; + struct inode { struct list_head i_hash; struct list_head i_list; @@ -350,7 +355,7 @@ struct inode { wait_queue_head_t i_wait; struct file_lock *i_flock; struct vm_area_struct *i_mmap; - struct page *i_pages; + struct list_head i_pages; spinlock_t i_shared_lock; struct dquot *i_dquot[MAXQUOTAS]; struct pipe_inode_info *i_pipe; @@ -769,8 +774,6 @@ extern int fs_may_mount(kdev_t); extern int try_to_free_buffers(struct page *); extern void refile_buffer(struct buffer_head * buf); -extern atomic_t buffermem; - #define BUF_CLEAN 0 #define BUF_LOCKED 1 /* Buffers scheduled for write */ #define BUF_DIRTY 2 /* Dirty buffers, not yet scheduled for write */ @@ -874,7 +877,7 @@ typedef struct { int error; } read_descriptor_t; -typedef int (*read_actor_t)(read_descriptor_t *, const char *, unsigned long); +typedef int (*read_actor_t)(read_descriptor_t *, struct page *, unsigned long, unsigned long); extern struct dentry * lookup_dentry(const char *, struct dentry *, unsigned int); @@ -886,7 +889,14 @@ extern struct dentry * __namei(const char *, unsigned int); extern void iput(struct inode *); extern struct inode * igrab(struct inode *); extern ino_t iunique(struct super_block *, ino_t); -extern struct inode * iget(struct super_block *, unsigned long); + +typedef int (*find_inode_t)(struct inode *, unsigned long, void *); +extern struct inode * iget4(struct super_block *, unsigned long, find_inode_t, void *); +static inline struct inode *iget(struct super_block *sb, unsigned long ino) +{ + return iget4(sb, ino, NULL, NULL); +} + extern void clear_inode(struct inode *); extern struct inode * get_empty_inode(void); @@ -934,11 +944,14 @@ extern void do_generic_file_read(struct file * filp, loff_t *ppos, read_descript extern struct super_block *get_super(kdev_t); +struct super_block *get_empty_super(void); +void remove_vfsmnt(kdev_t dev); extern void put_super(kdev_t); unsigned long generate_cluster(kdev_t, int b[], int); unsigned long generate_cluster_swab32(kdev_t, int b[], int); extern kdev_t ROOT_DEV; +extern void show_buffers(void); extern void mount_root(void); #ifdef CONFIG_BLK_DEV_INITRD |