aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/fs.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/fs.h')
-rw-r--r--include/linux/fs.h18
1 files changed, 15 insertions, 3 deletions
diff --git a/include/linux/fs.h b/include/linux/fs.h
index e2170ee21e18..0b87b29f4797 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -423,6 +423,9 @@ enum positive_aop_returns {
423 423
424#define AOP_FLAG_UNINTERRUPTIBLE 0x0001 /* will not do a short write */ 424#define AOP_FLAG_UNINTERRUPTIBLE 0x0001 /* will not do a short write */
425#define AOP_FLAG_CONT_EXPAND 0x0002 /* called from cont_expand */ 425#define AOP_FLAG_CONT_EXPAND 0x0002 /* called from cont_expand */
426#define AOP_FLAG_NOFS 0x0004 /* used by filesystem to direct
427 * helper code (eg buffer layer)
428 * to clear GFP_FS from alloc */
426 429
427/* 430/*
428 * oh the beauties of C type declarations. 431 * oh the beauties of C type declarations.
@@ -562,6 +565,7 @@ struct address_space {
562struct block_device { 565struct block_device {
563 dev_t bd_dev; /* not a kdev_t - it's a search key */ 566 dev_t bd_dev; /* not a kdev_t - it's a search key */
564 struct inode * bd_inode; /* will die */ 567 struct inode * bd_inode; /* will die */
568 struct super_block * bd_super;
565 int bd_openers; 569 int bd_openers;
566 struct mutex bd_mutex; /* open/close mutex */ 570 struct mutex bd_mutex; /* open/close mutex */
567 struct semaphore bd_mount_sem; 571 struct semaphore bd_mount_sem;
@@ -1130,7 +1134,6 @@ struct super_block {
1130 struct rw_semaphore s_umount; 1134 struct rw_semaphore s_umount;
1131 struct mutex s_lock; 1135 struct mutex s_lock;
1132 int s_count; 1136 int s_count;
1133 int s_syncing;
1134 int s_need_sync_fs; 1137 int s_need_sync_fs;
1135 atomic_t s_active; 1138 atomic_t s_active;
1136#ifdef CONFIG_SECURITY 1139#ifdef CONFIG_SECURITY
@@ -1182,6 +1185,11 @@ struct super_block {
1182 * generic_show_options() 1185 * generic_show_options()
1183 */ 1186 */
1184 char *s_options; 1187 char *s_options;
1188
1189 /*
1190 * storage for asynchronous operations
1191 */
1192 struct list_head s_async_list;
1185}; 1193};
1186 1194
1187extern struct timespec current_fs_time(struct super_block *sb); 1195extern struct timespec current_fs_time(struct super_block *sb);
@@ -1382,6 +1390,7 @@ struct super_operations {
1382 ssize_t (*quota_read)(struct super_block *, int, char *, size_t, loff_t); 1390 ssize_t (*quota_read)(struct super_block *, int, char *, size_t, loff_t);
1383 ssize_t (*quota_write)(struct super_block *, int, const char *, size_t, loff_t); 1391 ssize_t (*quota_write)(struct super_block *, int, const char *, size_t, loff_t);
1384#endif 1392#endif
1393 int (*bdev_try_to_free_page)(struct super_block*, struct page*, gfp_t);
1385}; 1394};
1386 1395
1387/* 1396/*
@@ -1827,7 +1836,7 @@ extern int __filemap_fdatawrite_range(struct address_space *mapping,
1827extern int filemap_fdatawrite_range(struct address_space *mapping, 1836extern int filemap_fdatawrite_range(struct address_space *mapping,
1828 loff_t start, loff_t end); 1837 loff_t start, loff_t end);
1829 1838
1830extern long do_fsync(struct file *file, int datasync); 1839extern int vfs_fsync(struct file *file, struct dentry *dentry, int datasync);
1831extern void sync_supers(void); 1840extern void sync_supers(void);
1832extern void sync_filesystems(int wait); 1841extern void sync_filesystems(int wait);
1833extern void __fsync_super(struct super_block *sb); 1842extern void __fsync_super(struct super_block *sb);
@@ -2035,7 +2044,7 @@ extern int page_readlink(struct dentry *, char __user *, int);
2035extern void *page_follow_link_light(struct dentry *, struct nameidata *); 2044extern void *page_follow_link_light(struct dentry *, struct nameidata *);
2036extern void page_put_link(struct dentry *, struct nameidata *, void *); 2045extern void page_put_link(struct dentry *, struct nameidata *, void *);
2037extern int __page_symlink(struct inode *inode, const char *symname, int len, 2046extern int __page_symlink(struct inode *inode, const char *symname, int len,
2038 gfp_t gfp_mask); 2047 int nofs);
2039extern int page_symlink(struct inode *inode, const char *symname, int len); 2048extern int page_symlink(struct inode *inode, const char *symname, int len);
2040extern const struct inode_operations page_symlink_inode_operations; 2049extern const struct inode_operations page_symlink_inode_operations;
2041extern int generic_readlink(struct dentry *, char __user *, int); 2050extern int generic_readlink(struct dentry *, char __user *, int);
@@ -2056,6 +2065,9 @@ extern int vfs_fstat(unsigned int, struct kstat *);
2056 2065
2057extern int do_vfs_ioctl(struct file *filp, unsigned int fd, unsigned int cmd, 2066extern int do_vfs_ioctl(struct file *filp, unsigned int fd, unsigned int cmd,
2058 unsigned long arg); 2067 unsigned long arg);
2068extern int __generic_block_fiemap(struct inode *inode,
2069 struct fiemap_extent_info *fieinfo, u64 start,
2070 u64 len, get_block_t *get_block);
2059extern int generic_block_fiemap(struct inode *inode, 2071extern int generic_block_fiemap(struct inode *inode,
2060 struct fiemap_extent_info *fieinfo, u64 start, 2072 struct fiemap_extent_info *fieinfo, u64 start,
2061 u64 len, get_block_t *get_block); 2073 u64 len, get_block_t *get_block);