diff options
author | Yan, Zheng <zheng.yan@oracle.com> | 2009-11-12 04:34:21 -0500 |
---|---|---|
committer | Chris Mason <chris.mason@oracle.com> | 2009-12-17 12:33:24 -0500 |
commit | c216775458a2ee345d9412a2770c2916acfb5d30 (patch) | |
tree | 41a947a9d254aeeef40b7e42162d80646477f30a /fs/btrfs/btrfs_inode.h | |
parent | 920bbbfb05c9fce22e088d20eb9dcb8f96342de9 (diff) |
Btrfs: Fix disk_i_size update corner case
There are some cases file extents are inserted without involving
ordered struct. In these cases, we update disk_i_size directly,
without checking pending ordered extent and DELALLOC bit. This
patch extends btrfs_ordered_update_i_size() to handle these cases.
Signed-off-by: Yan Zheng <zheng.yan@oracle.com>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs/btrfs/btrfs_inode.h')
-rw-r--r-- | fs/btrfs/btrfs_inode.h | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/fs/btrfs/btrfs_inode.h b/fs/btrfs/btrfs_inode.h index f6783a42f010..3f1f50d9d916 100644 --- a/fs/btrfs/btrfs_inode.h +++ b/fs/btrfs/btrfs_inode.h | |||
@@ -44,9 +44,6 @@ struct btrfs_inode { | |||
44 | */ | 44 | */ |
45 | struct extent_io_tree io_failure_tree; | 45 | struct extent_io_tree io_failure_tree; |
46 | 46 | ||
47 | /* held while inesrting or deleting extents from files */ | ||
48 | struct mutex extent_mutex; | ||
49 | |||
50 | /* held while logging the inode in tree-log.c */ | 47 | /* held while logging the inode in tree-log.c */ |
51 | struct mutex log_mutex; | 48 | struct mutex log_mutex; |
52 | 49 | ||
@@ -166,7 +163,7 @@ static inline struct btrfs_inode *BTRFS_I(struct inode *inode) | |||
166 | 163 | ||
167 | static inline void btrfs_i_size_write(struct inode *inode, u64 size) | 164 | static inline void btrfs_i_size_write(struct inode *inode, u64 size) |
168 | { | 165 | { |
169 | inode->i_size = size; | 166 | i_size_write(inode, size); |
170 | BTRFS_I(inode)->disk_i_size = size; | 167 | BTRFS_I(inode)->disk_i_size = size; |
171 | } | 168 | } |
172 | 169 | ||