summaryrefslogtreecommitdiffstats
path: root/include/linux/fs.h
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2000-01-27 01:05:20 +0000
committerRalf Baechle <ralf@linux-mips.org>2000-01-27 01:05:20 +0000
commit546db14ee74118296f425f3b91634fb767d67290 (patch)
tree22b613a3da8d4bf663eec5e155af01b87fdf9094 /include/linux/fs.h
parent1e25e41c4f5474e14452094492dbc169b800e4c8 (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.h23
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