diff options
Diffstat (limited to 'fs/btrfs/btrfs_inode.h')
-rw-r--r-- | fs/btrfs/btrfs_inode.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/fs/btrfs/btrfs_inode.h b/fs/btrfs/btrfs_inode.h index 61205e3bbefa..1da5753d886d 100644 --- a/fs/btrfs/btrfs_inode.h +++ b/fs/btrfs/btrfs_inode.h | |||
@@ -196,6 +196,16 @@ struct btrfs_inode { | |||
196 | struct list_head delayed_iput; | 196 | struct list_head delayed_iput; |
197 | long delayed_iput_count; | 197 | long delayed_iput_count; |
198 | 198 | ||
199 | /* | ||
200 | * To avoid races between lockless (i_mutex not held) direct IO writes | ||
201 | * and concurrent fsync requests. Direct IO writes must acquire read | ||
202 | * access on this semaphore for creating an extent map and its | ||
203 | * corresponding ordered extent. The fast fsync path must acquire write | ||
204 | * access on this semaphore before it collects ordered extents and | ||
205 | * extent maps. | ||
206 | */ | ||
207 | struct rw_semaphore dio_sem; | ||
208 | |||
199 | struct inode vfs_inode; | 209 | struct inode vfs_inode; |
200 | }; | 210 | }; |
201 | 211 | ||