diff options
| author | Christoph Hellwig <hch@infradead.org> | 2011-05-27 06:53:02 -0400 |
|---|---|---|
| committer | Al Viro <viro@zeniv.linux.org.uk> | 2011-05-27 07:04:40 -0400 |
| commit | aa38572954ade525817fe88c54faebf85e5a61c0 (patch) | |
| tree | ef398ec06c97134592f62a49c99f3f80041b427c /Documentation/filesystems/Locking | |
| parent | d6e9bd256c88ce5f4b668249e363a74f51393daa (diff) | |
fs: pass exact type of data dirties to ->dirty_inode
Tell the filesystem if we just updated timestamp (I_DIRTY_SYNC) or
anything else, so that the filesystem can track internally if it
needs to push out a transaction for fdatasync or not.
This is just the prototype change with no user for it yet. I plan
to push large XFS changes for the next merge window, and getting
this trivial infrastructure in this window would help a lot to avoid
tree interdependencies.
Also remove incorrect comments that ->dirty_inode can't block. That
has been changed a long time ago, and many implementations rely on it.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'Documentation/filesystems/Locking')
| -rw-r--r-- | Documentation/filesystems/Locking | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/Documentation/filesystems/Locking b/Documentation/filesystems/Locking index 61b31acb9176..57d827d6071d 100644 --- a/Documentation/filesystems/Locking +++ b/Documentation/filesystems/Locking | |||
| @@ -104,7 +104,7 @@ of the locking scheme for directory operations. | |||
| 104 | prototypes: | 104 | prototypes: |
| 105 | struct inode *(*alloc_inode)(struct super_block *sb); | 105 | struct inode *(*alloc_inode)(struct super_block *sb); |
| 106 | void (*destroy_inode)(struct inode *); | 106 | void (*destroy_inode)(struct inode *); |
| 107 | void (*dirty_inode) (struct inode *); | 107 | void (*dirty_inode) (struct inode *, int flags); |
| 108 | int (*write_inode) (struct inode *, struct writeback_control *wbc); | 108 | int (*write_inode) (struct inode *, struct writeback_control *wbc); |
| 109 | int (*drop_inode) (struct inode *); | 109 | int (*drop_inode) (struct inode *); |
| 110 | void (*evict_inode) (struct inode *); | 110 | void (*evict_inode) (struct inode *); |
| @@ -126,7 +126,7 @@ locking rules: | |||
| 126 | s_umount | 126 | s_umount |
| 127 | alloc_inode: | 127 | alloc_inode: |
| 128 | destroy_inode: | 128 | destroy_inode: |
| 129 | dirty_inode: (must not sleep) | 129 | dirty_inode: |
| 130 | write_inode: | 130 | write_inode: |
| 131 | drop_inode: !!!inode->i_lock!!! | 131 | drop_inode: !!!inode->i_lock!!! |
| 132 | evict_inode: | 132 | evict_inode: |
