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.h19
1 files changed, 16 insertions, 3 deletions
diff --git a/include/linux/fs.h b/include/linux/fs.h
index fb59673c60b1..6022f44043f2 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -234,6 +234,8 @@ struct inodes_stat_t {
234#define BMAP_IOCTL 1 /* obsolete - kept for compatibility */ 234#define BMAP_IOCTL 1 /* obsolete - kept for compatibility */
235#define FIBMAP _IO(0x00,1) /* bmap access */ 235#define FIBMAP _IO(0x00,1) /* bmap access */
236#define FIGETBSZ _IO(0x00,2) /* get the block size used for bmap */ 236#define FIGETBSZ _IO(0x00,2) /* get the block size used for bmap */
237#define FIFREEZE _IOWR('X', 119, int) /* Freeze */
238#define FITHAW _IOWR('X', 120, int) /* Thaw */
237 239
238#define FS_IOC_GETFLAGS _IOR('f', 1, long) 240#define FS_IOC_GETFLAGS _IOR('f', 1, long)
239#define FS_IOC_SETFLAGS _IOW('f', 2, long) 241#define FS_IOC_SETFLAGS _IOW('f', 2, long)
@@ -565,6 +567,7 @@ struct address_space {
565struct block_device { 567struct block_device {
566 dev_t bd_dev; /* not a kdev_t - it's a search key */ 568 dev_t bd_dev; /* not a kdev_t - it's a search key */
567 struct inode * bd_inode; /* will die */ 569 struct inode * bd_inode; /* will die */
570 struct super_block * bd_super;
568 int bd_openers; 571 int bd_openers;
569 struct mutex bd_mutex; /* open/close mutex */ 572 struct mutex bd_mutex; /* open/close mutex */
570 struct semaphore bd_mount_sem; 573 struct semaphore bd_mount_sem;
@@ -590,6 +593,11 @@ struct block_device {
590 * care to not mess up bd_private for that case. 593 * care to not mess up bd_private for that case.
591 */ 594 */
592 unsigned long bd_private; 595 unsigned long bd_private;
596
597 /* The counter of freeze processes */
598 int bd_fsfreeze_count;
599 /* Mutex for freeze */
600 struct mutex bd_fsfreeze_mutex;
593}; 601};
594 602
595/* 603/*
@@ -1133,7 +1141,6 @@ struct super_block {
1133 struct rw_semaphore s_umount; 1141 struct rw_semaphore s_umount;
1134 struct mutex s_lock; 1142 struct mutex s_lock;
1135 int s_count; 1143 int s_count;
1136 int s_syncing;
1137 int s_need_sync_fs; 1144 int s_need_sync_fs;
1138 atomic_t s_active; 1145 atomic_t s_active;
1139#ifdef CONFIG_SECURITY 1146#ifdef CONFIG_SECURITY
@@ -1185,6 +1192,11 @@ struct super_block {
1185 * generic_show_options() 1192 * generic_show_options()
1186 */ 1193 */
1187 char *s_options; 1194 char *s_options;
1195
1196 /*
1197 * storage for asynchronous operations
1198 */
1199 struct list_head s_async_list;
1188}; 1200};
1189 1201
1190extern struct timespec current_fs_time(struct super_block *sb); 1202extern struct timespec current_fs_time(struct super_block *sb);
@@ -1372,8 +1384,8 @@ struct super_operations {
1372 void (*put_super) (struct super_block *); 1384 void (*put_super) (struct super_block *);
1373 void (*write_super) (struct super_block *); 1385 void (*write_super) (struct super_block *);
1374 int (*sync_fs)(struct super_block *sb, int wait); 1386 int (*sync_fs)(struct super_block *sb, int wait);
1375 void (*write_super_lockfs) (struct super_block *); 1387 int (*freeze_fs) (struct super_block *);
1376 void (*unlockfs) (struct super_block *); 1388 int (*unfreeze_fs) (struct super_block *);
1377 int (*statfs) (struct dentry *, struct kstatfs *); 1389 int (*statfs) (struct dentry *, struct kstatfs *);
1378 int (*remount_fs) (struct super_block *, int *, char *); 1390 int (*remount_fs) (struct super_block *, int *, char *);
1379 void (*clear_inode) (struct inode *); 1391 void (*clear_inode) (struct inode *);
@@ -1385,6 +1397,7 @@ struct super_operations {
1385 ssize_t (*quota_read)(struct super_block *, int, char *, size_t, loff_t); 1397 ssize_t (*quota_read)(struct super_block *, int, char *, size_t, loff_t);
1386 ssize_t (*quota_write)(struct super_block *, int, const char *, size_t, loff_t); 1398 ssize_t (*quota_write)(struct super_block *, int, const char *, size_t, loff_t);
1387#endif 1399#endif
1400 int (*bdev_try_to_free_page)(struct super_block*, struct page*, gfp_t);
1388}; 1401};
1389 1402
1390/* 1403/*