summaryrefslogtreecommitdiffstats
path: root/include/linux/fs.h
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2000-02-16 01:07:24 +0000
committerRalf Baechle <ralf@linux-mips.org>2000-02-16 01:07:24 +0000
commit95db6b748fc86297827fbd9c9ef174d491c9ad89 (patch)
tree27a92a942821cde1edda9a1b088718d436b3efe4 /include/linux/fs.h
parent45b27b0a0652331d104c953a5b192d843fff88f8 (diff)
Merge with Linux 2.3.40.
Diffstat (limited to 'include/linux/fs.h')
-rw-r--r--include/linux/fs.h21
1 files changed, 19 insertions, 2 deletions
diff --git a/include/linux/fs.h b/include/linux/fs.h
index e6c0c4c29..0046b3f7e 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -277,6 +277,7 @@ extern void set_bh_page(struct buffer_head *bh, struct page *page, unsigned long
#include <linux/udf_fs_i.h>
#include <linux/ncp_fs_i.h>
#include <linux/proc_fs_i.h>
+#include <linux/usbdev_fs_i.h>
/*
* Attribute flags. These should be or-ed together to figure out what
@@ -414,6 +415,7 @@ struct inode {
struct ncp_inode_info ncpfs_i;
struct proc_inode_info proc_i;
struct socket socket_i;
+ struct usbdev_inode_info usbdev_i;
void *generic_ip;
} u;
};
@@ -545,6 +547,7 @@ extern int fasync_helper(int, struct file *, int, struct fasync_struct **);
#include <linux/bfs_fs_sb.h>
#include <linux/udf_fs_sb.h>
#include <linux/ncp_fs_sb.h>
+#include <linux/usbdev_fs_sb.h>
extern struct list_head super_blocks;
@@ -592,6 +595,7 @@ struct super_block {
struct bfs_sb_info bfs_sb;
struct udf_sb_info udf_sb;
struct ncp_sb_info ncpfs_sb;
+ struct usbdev_sb_info usbdevfs_sb;
void *generic_sbp;
} u;
/*
@@ -810,7 +814,8 @@ extern void refile_buffer(struct buffer_head * buf);
#define BUF_CLEAN 0
#define BUF_LOCKED 1 /* Buffers scheduled for write */
#define BUF_DIRTY 2 /* Dirty buffers, not yet scheduled for write */
-#define NR_LIST 3
+#define BUF_PROTECTED 3 /* Ramdisk persistent storage */
+#define NR_LIST 4
/*
* This is called by bh->b_end_io() handlers when I/O has completed.
@@ -836,6 +841,19 @@ extern inline void mark_buffer_clean(struct buffer_head * bh)
__mark_buffer_clean(bh);
}
+#define atomic_set_buffer_protected(bh) test_and_set_bit(BH_Protected, &(bh)->b_state)
+
+extern inline void __mark_buffer_protected(struct buffer_head *bh)
+{
+ refile_buffer(bh);
+}
+
+extern inline void mark_buffer_protected(struct buffer_head * bh)
+{
+ if (!atomic_set_buffer_protected(bh))
+ __mark_buffer_protected(bh);
+}
+
extern void FASTCALL(__mark_buffer_dirty(struct buffer_head *bh, int flag));
#define atomic_set_buffer_dirty(bh) test_and_set_bit(BH_Dirty, &(bh)->b_state)
@@ -1011,7 +1029,6 @@ extern int read_ahead[];
extern ssize_t char_write(struct file *, const char *, size_t, loff_t *);
extern ssize_t block_write(struct file *, const char *, size_t, loff_t *);
-extern int block_fsync(struct file *, struct dentry *);
extern int file_fsync(struct file *, struct dentry *);
extern int generic_buffer_fdatasync(struct inode *inode, unsigned long start_idx, unsigned long end_idx);