summaryrefslogtreecommitdiffstats
path: root/fs/btrfs
diff options
context:
space:
mode:
authorMiao Xie <miaox@cn.fujitsu.com>2013-01-28 07:34:55 -0500
committerJosef Bacik <jbacik@fusionio.com>2013-02-05 16:09:10 -0500
commit0a3404dcff29a7589e8d6ce8c36f97c5411f85b4 (patch)
tree14531ce5b4c7fe080847590237b6c97b57f69edb /fs/btrfs
parent222c81dc3874b4fe98371be665d0447a36447653 (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.c3
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 }
1598out: 1598
1599 if (sync) 1599 if (sync)
1600 atomic_dec(&BTRFS_I(inode)->sync_writers); 1600 atomic_dec(&BTRFS_I(inode)->sync_writers);
1601out:
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;