diff options
author | Miao Xie <miaox@cn.fujitsu.com> | 2013-01-28 07:34:55 -0500 |
---|---|---|
committer | Josef Bacik <jbacik@fusionio.com> | 2013-02-05 16:09:10 -0500 |
commit | 0a3404dcff29a7589e8d6ce8c36f97c5411f85b4 (patch) | |
tree | 14531ce5b4c7fe080847590237b6c97b57f69edb /fs/btrfs | |
parent | 222c81dc3874b4fe98371be665d0447a36447653 (diff) |
Btrfs: fix wrong sync_writers decrement in btrfs_file_aio_write()
If the checks at the beginning of btrfs_file_aio_write() fail, we needn't
decrease ->sync_writers, because we have not increased it. Fix it.
Signed-off-by: Miao Xie <miaox@cn.fujitsu.com>
Signed-off-by: Josef Bacik <jbacik@fusionio.com>
Diffstat (limited to 'fs/btrfs')
-rw-r--r-- | fs/btrfs/file.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c index 841cfe3be0e0..a902faab7161 100644 --- a/fs/btrfs/file.c +++ b/fs/btrfs/file.c | |||
@@ -1595,9 +1595,10 @@ static ssize_t btrfs_file_aio_write(struct kiocb *iocb, | |||
1595 | if (err < 0 && num_written > 0) | 1595 | if (err < 0 && num_written > 0) |
1596 | num_written = err; | 1596 | num_written = err; |
1597 | } | 1597 | } |
1598 | out: | 1598 | |
1599 | if (sync) | 1599 | if (sync) |
1600 | atomic_dec(&BTRFS_I(inode)->sync_writers); | 1600 | atomic_dec(&BTRFS_I(inode)->sync_writers); |
1601 | out: | ||
1601 | sb_end_write(inode->i_sb); | 1602 | sb_end_write(inode->i_sb); |
1602 | current->backing_dev_info = NULL; | 1603 | current->backing_dev_info = NULL; |
1603 | return num_written ? num_written : err; | 1604 | return num_written ? num_written : err; |