diff options
Diffstat (limited to 'fs/btrfs/ordered-data.c')
| -rw-r--r-- | fs/btrfs/ordered-data.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/fs/btrfs/ordered-data.c b/fs/btrfs/ordered-data.c index 534544e08f76..157cc54fc634 100644 --- a/fs/btrfs/ordered-data.c +++ b/fs/btrfs/ordered-data.c | |||
| @@ -452,9 +452,7 @@ void btrfs_get_logged_extents(struct inode *inode, | |||
| 452 | continue; | 452 | continue; |
| 453 | if (entry_end(ordered) <= start) | 453 | if (entry_end(ordered) <= start) |
| 454 | break; | 454 | break; |
| 455 | if (!list_empty(&ordered->log_list)) | 455 | if (test_and_set_bit(BTRFS_ORDERED_LOGGED, &ordered->flags)) |
| 456 | continue; | ||
| 457 | if (test_bit(BTRFS_ORDERED_LOGGED, &ordered->flags)) | ||
| 458 | continue; | 456 | continue; |
| 459 | list_add(&ordered->log_list, logged_list); | 457 | list_add(&ordered->log_list, logged_list); |
| 460 | atomic_inc(&ordered->refs); | 458 | atomic_inc(&ordered->refs); |
| @@ -511,8 +509,7 @@ void btrfs_wait_logged_extents(struct btrfs_trans_handle *trans, | |||
| 511 | wait_event(ordered->wait, test_bit(BTRFS_ORDERED_IO_DONE, | 509 | wait_event(ordered->wait, test_bit(BTRFS_ORDERED_IO_DONE, |
| 512 | &ordered->flags)); | 510 | &ordered->flags)); |
| 513 | 511 | ||
| 514 | if (!test_and_set_bit(BTRFS_ORDERED_LOGGED, &ordered->flags)) | 512 | list_add_tail(&ordered->trans_list, &trans->ordered); |
| 515 | list_add_tail(&ordered->trans_list, &trans->ordered); | ||
| 516 | spin_lock_irq(&log->log_extents_lock[index]); | 513 | spin_lock_irq(&log->log_extents_lock[index]); |
| 517 | } | 514 | } |
| 518 | spin_unlock_irq(&log->log_extents_lock[index]); | 515 | spin_unlock_irq(&log->log_extents_lock[index]); |
