diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2000-02-16 01:07:24 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2000-02-16 01:07:24 +0000 |
commit | 95db6b748fc86297827fbd9c9ef174d491c9ad89 (patch) | |
tree | 27a92a942821cde1edda9a1b088718d436b3efe4 /include/linux/fs.h | |
parent | 45b27b0a0652331d104c953a5b192d843fff88f8 (diff) |
Merge with Linux 2.3.40.
Diffstat (limited to 'include/linux/fs.h')
-rw-r--r-- | include/linux/fs.h | 21 |
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); |