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.h31
1 files changed, 9 insertions, 22 deletions
diff --git a/include/linux/fs.h b/include/linux/fs.h
index 70b99fbb560b..1410e5330c8d 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -120,6 +120,7 @@ extern int dir_notify_enable;
120#define MS_PRIVATE (1<<18) /* change to private */ 120#define MS_PRIVATE (1<<18) /* change to private */
121#define MS_SLAVE (1<<19) /* change to slave */ 121#define MS_SLAVE (1<<19) /* change to slave */
122#define MS_SHARED (1<<20) /* change to shared */ 122#define MS_SHARED (1<<20) /* change to shared */
123#define MS_RELATIME (1<<21) /* Update atime relative to mtime/ctime. */
123#define MS_ACTIVE (1<<30) 124#define MS_ACTIVE (1<<30)
124#define MS_NOUSER (1<<31) 125#define MS_NOUSER (1<<31)
125 126
@@ -269,6 +270,7 @@ extern int dir_notify_enable;
269#include <linux/types.h> 270#include <linux/types.h>
270#include <linux/kdev_t.h> 271#include <linux/kdev_t.h>
271#include <linux/dcache.h> 272#include <linux/dcache.h>
273#include <linux/namei.h>
272#include <linux/stat.h> 274#include <linux/stat.h>
273#include <linux/cache.h> 275#include <linux/cache.h>
274#include <linux/kobject.h> 276#include <linux/kobject.h>
@@ -424,6 +426,7 @@ struct address_space_operations {
424 /* migrate the contents of a page to the specified target */ 426 /* migrate the contents of a page to the specified target */
425 int (*migratepage) (struct address_space *, 427 int (*migratepage) (struct address_space *,
426 struct page *, struct page *); 428 struct page *, struct page *);
429 int (*launder_page) (struct page *);
427}; 430};
428 431
429struct backing_dev_info; 432struct backing_dev_info;
@@ -456,7 +459,7 @@ struct block_device {
456 struct inode * bd_inode; /* will die */ 459 struct inode * bd_inode; /* will die */
457 int bd_openers; 460 int bd_openers;
458 struct mutex bd_mutex; /* open/close mutex */ 461 struct mutex bd_mutex; /* open/close mutex */
459 struct mutex bd_mount_mutex; /* mount mutex */ 462 struct semaphore bd_mount_sem;
460 struct list_head bd_inodes; 463 struct list_head bd_inodes;
461 void * bd_holder; 464 void * bd_holder;
462 int bd_holders; 465 int bd_holders;
@@ -482,21 +485,6 @@ struct block_device {
482}; 485};
483 486
484/* 487/*
485 * bdev->bd_mutex nesting subclasses for the lock validator:
486 *
487 * 0: normal
488 * 1: 'whole'
489 * 2: 'partition'
490 */
491enum bdev_bd_mutex_lock_class
492{
493 BD_MUTEX_NORMAL,
494 BD_MUTEX_WHOLE,
495 BD_MUTEX_PARTITION
496};
497
498
499/*
500 * Radix-tree tags, for tagging dirty and writeback pages within the pagecache 488 * Radix-tree tags, for tagging dirty and writeback pages within the pagecache
501 * radix trees 489 * radix trees
502 */ 490 */
@@ -726,8 +714,9 @@ struct file {
726 struct list_head fu_list; 714 struct list_head fu_list;
727 struct rcu_head fu_rcuhead; 715 struct rcu_head fu_rcuhead;
728 } f_u; 716 } f_u;
729 struct dentry *f_dentry; 717 struct path f_path;
730 struct vfsmount *f_vfsmnt; 718#define f_dentry f_path.dentry
719#define f_vfsmnt f_path.mnt
731 const struct file_operations *f_op; 720 const struct file_operations *f_op;
732 atomic_t f_count; 721 atomic_t f_count;
733 unsigned int f_flags; 722 unsigned int f_flags;
@@ -1239,7 +1228,7 @@ extern void touch_atime(struct vfsmount *mnt, struct dentry *dentry);
1239static inline void file_accessed(struct file *file) 1228static inline void file_accessed(struct file *file)
1240{ 1229{
1241 if (!(file->f_flags & O_NOATIME)) 1230 if (!(file->f_flags & O_NOATIME))
1242 touch_atime(file->f_vfsmnt, file->f_dentry); 1231 touch_atime(file->f_path.mnt, file->f_path.dentry);
1243} 1232}
1244 1233
1245int sync_inode(struct inode *inode, struct writeback_control *wbc); 1234int sync_inode(struct inode *inode, struct writeback_control *wbc);
@@ -1499,7 +1488,6 @@ extern void bd_set_size(struct block_device *, loff_t size);
1499extern void bd_forget(struct inode *inode); 1488extern void bd_forget(struct inode *inode);
1500extern void bdput(struct block_device *); 1489extern void bdput(struct block_device *);
1501extern struct block_device *open_by_devnum(dev_t, unsigned); 1490extern struct block_device *open_by_devnum(dev_t, unsigned);
1502extern struct block_device *open_partition_by_devnum(dev_t, unsigned);
1503extern const struct address_space_operations def_blk_aops; 1491extern const struct address_space_operations def_blk_aops;
1504#else 1492#else
1505static inline void bd_forget(struct inode *inode) {} 1493static inline void bd_forget(struct inode *inode) {}
@@ -1517,7 +1505,6 @@ extern int blkdev_driver_ioctl(struct inode *inode, struct file *file,
1517extern long compat_blkdev_ioctl(struct file *, unsigned, unsigned long); 1505extern long compat_blkdev_ioctl(struct file *, unsigned, unsigned long);
1518extern int blkdev_get(struct block_device *, mode_t, unsigned); 1506extern int blkdev_get(struct block_device *, mode_t, unsigned);
1519extern int blkdev_put(struct block_device *); 1507extern int blkdev_put(struct block_device *);
1520extern int blkdev_put_partition(struct block_device *);
1521extern int bd_claim(struct block_device *, void *); 1508extern int bd_claim(struct block_device *, void *);
1522extern void bd_release(struct block_device *); 1509extern void bd_release(struct block_device *);
1523#ifdef CONFIG_SYSFS 1510#ifdef CONFIG_SYSFS
@@ -1632,7 +1619,7 @@ static inline void put_write_access(struct inode * inode)
1632static inline void allow_write_access(struct file *file) 1619static inline void allow_write_access(struct file *file)
1633{ 1620{
1634 if (file) 1621 if (file)
1635 atomic_inc(&file->f_dentry->d_inode->i_writecount); 1622 atomic_inc(&file->f_path.dentry->d_inode->i_writecount);
1636} 1623}
1637extern int do_pipe(int *); 1624extern int do_pipe(int *);
1638extern struct file *create_read_pipe(struct file *f); 1625extern struct file *create_read_pipe(struct file *f);