Ming Lei
cecf5d87ff
block: split .sysfs_lock into two locks
...
The kernfs built-in lock of 'kn->count' is held in sysfs .show/.store
path. Meantime, inside block's .show/.store callback, q->sysfs_lock is
required.
However, when mq & iosched kobjects are removed via
blk_mq_unregister_dev() & elv_unregister_queue(), q->sysfs_lock is held
too. This way causes AB-BA lock because the kernfs built-in lock of
'kn-count' is required inside kobject_del() too, see the lockdep warning[1].
On the other hand, it isn't necessary to acquire q->sysfs_lock for
both blk_mq_unregister_dev() & elv_unregister_queue() because
clearing REGISTERED flag prevents storing to 'queue/scheduler'
from being happened. Also sysfs write(store) is exclusive, so no
necessary to hold the lock for elv_unregister_queue() when it is
called in switching elevator path.
So split .sysfs_lock into two: one is still named as .sysfs_lock for
covering sync .store, the other one is named as .sysfs_dir_lock
for covering kobjects and related status change.
sysfs itself can handle the race between add/remove kobjects and
showing/storing attributes under kobjects. For switching scheduler
via storing to 'queue/scheduler', we use the queue flag of
QUEUE_FLAG_REGISTERED with .sysfs_lock for avoiding the race, then
we can avoid to hold .sysfs_lock during removing/adding kobjects.
[1] lockdep warning
======================================================
WARNING: possible circular locking dependency detected
5.3.0-rc3-00044-g73277fc75ea0 #1380 Not tainted
------------------------------------------------------
rmmod/777 is trying to acquire lock:
00000000ac50e981 (kn->count#202){++++}, at: kernfs_remove_by_name_ns+0x59/0x72
but task is already holding lock:
00000000fb16ae21 (&q->sysfs_lock){+.+.}, at: blk_unregister_queue+0x78/0x10b
which lock already depends on the new lock.
the existing dependency chain (in reverse order) is:
-> #1 (&q->sysfs_lock){+.+.}:
__lock_acquire+0x95f/0xa2f
lock_acquire+0x1b4/0x1e8
__mutex_lock+0x14a/0xa9b
blk_mq_hw_sysfs_show+0x63/0xb6
sysfs_kf_seq_show+0x11f/0x196
seq_read+0x2cd/0x5f2
vfs_read+0xc7/0x18c
ksys_read+0xc4/0x13e
do_syscall_64+0xa7/0x295
entry_SYSCALL_64_after_hwframe+0x49/0xbe
-> #0 (kn->count#202){++++}:
check_prev_add+0x5d2/0xc45
validate_chain+0xed3/0xf94
__lock_acquire+0x95f/0xa2f
lock_acquire+0x1b4/0x1e8
__kernfs_remove+0x237/0x40b
kernfs_remove_by_name_ns+0x59/0x72
remove_files+0x61/0x96
sysfs_remove_group+0x81/0xa4
sysfs_remove_groups+0x3b/0x44
kobject_del+0x44/0x94
blk_mq_unregister_dev+0x83/0xdd
blk_unregister_queue+0xa0/0x10b
del_gendisk+0x259/0x3fa
null_del_dev+0x8b/0x1c3 [null_blk]
null_exit+0x5c/0x95 [null_blk]
__se_sys_delete_module+0x204/0x337
do_syscall_64+0xa7/0x295
entry_SYSCALL_64_after_hwframe+0x49/0xbe
other info that might help us debug this:
Possible unsafe locking scenario:
CPU0 CPU1
---- ----
lock(&q->sysfs_lock);
lock(kn->count#202);
lock(&q->sysfs_lock);
lock(kn->count#202);
*** DEADLOCK ***
2 locks held by rmmod/777:
#0 : 00000000e69bd9de (&lock){+.+.}, at: null_exit+0x2e/0x95 [null_blk]
#1 : 00000000fb16ae21 (&q->sysfs_lock){+.+.}, at: blk_unregister_queue+0x78/0x10b
stack backtrace:
CPU: 0 PID: 777 Comm: rmmod Not tainted 5.3.0-rc3-00044-g73277fc75ea0 #1380
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS ?-20180724_192412-buildhw-07.phx4
Call Trace:
dump_stack+0x9a/0xe6
check_noncircular+0x207/0x251
? print_circular_bug+0x32a/0x32a
? find_usage_backwards+0x84/0xb0
check_prev_add+0x5d2/0xc45
validate_chain+0xed3/0xf94
? check_prev_add+0xc45/0xc45
? mark_lock+0x11b/0x804
? check_usage_forwards+0x1ca/0x1ca
__lock_acquire+0x95f/0xa2f
lock_acquire+0x1b4/0x1e8
? kernfs_remove_by_name_ns+0x59/0x72
__kernfs_remove+0x237/0x40b
? kernfs_remove_by_name_ns+0x59/0x72
? kernfs_next_descendant_post+0x7d/0x7d
? strlen+0x10/0x23
? strcmp+0x22/0x44
kernfs_remove_by_name_ns+0x59/0x72
remove_files+0x61/0x96
sysfs_remove_group+0x81/0xa4
sysfs_remove_groups+0x3b/0x44
kobject_del+0x44/0x94
blk_mq_unregister_dev+0x83/0xdd
blk_unregister_queue+0xa0/0x10b
del_gendisk+0x259/0x3fa
? disk_events_poll_msecs_store+0x12b/0x12b
? check_flags+0x1ea/0x204
? mark_held_locks+0x1f/0x7a
null_del_dev+0x8b/0x1c3 [null_blk]
null_exit+0x5c/0x95 [null_blk]
__se_sys_delete_module+0x204/0x337
? free_module+0x39f/0x39f
? blkcg_maybe_throttle_current+0x8a/0x718
? rwlock_bug+0x62/0x62
? __blkcg_punt_bio_submit+0xd0/0xd0
? trace_hardirqs_on_thunk+0x1a/0x20
? mark_held_locks+0x1f/0x7a
? do_syscall_64+0x4c/0x295
do_syscall_64+0xa7/0x295
entry_SYSCALL_64_after_hwframe+0x49/0xbe
RIP: 0033:0x7fb696cdbe6b
Code: 73 01 c3 48 8b 0d 1d 20 0c 00 f7 d8 64 89 01 48 83 c8 ff c3 66 2e 0f 1f 84 00 00 008
RSP: 002b:00007ffec9588788 EFLAGS: 00000206 ORIG_RAX: 00000000000000b0
RAX: ffffffffffffffda RBX: 0000559e589137c0 RCX: 00007fb696cdbe6b
RDX: 000000000000000a RSI: 0000000000000800 RDI: 0000559e58913828
RBP: 0000000000000000 R08: 00007ffec9587701 R09: 0000000000000000
R10: 00007fb696d4eae0 R11: 0000000000000206 R12: 00007ffec95889b0
R13: 00007ffec95896b3 R14: 0000559e58913260 R15: 0000559e589137c0
Cc: Christoph Hellwig <hch@infradead.org >
Cc: Hannes Reinecke <hare@suse.com >
Cc: Greg KH <gregkh@linuxfoundation.org >
Cc: Mike Snitzer <snitzer@redhat.com >
Reviewed-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Ming Lei <ming.lei@redhat.com >
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2019-08-27 10:40:20 -06:00
..
2019-06-19 17:09:55 +02:00
2019-06-26 09:18:54 -07:00
2019-06-19 17:09:55 +02:00
2019-07-18 11:05:25 -07:00
2019-06-19 17:09:55 +02:00
2019-07-17 09:55:43 -07:00
2019-06-08 15:20:40 -07:00
2019-06-19 17:09:55 +02:00
2019-06-21 16:01:06 +02:00
2019-05-27 12:36:08 +05:30
2019-06-19 17:09:55 +02:00
2019-07-28 12:44:14 +02:00
2019-06-05 17:37:07 +02:00
2019-06-20 09:23:22 +02:00
2019-06-19 17:09:55 +02:00
2019-07-13 14:40:42 -07:00
2019-07-08 11:01:13 -07:00
2019-05-31 11:13:10 +02:00
2019-07-03 17:52:08 -04:00
2019-06-19 17:09:55 +02:00
2019-07-15 20:18:40 -07:00
2019-07-15 20:38:15 -07:00
2019-07-11 18:11:21 -07:00
2019-07-13 15:42:44 -07:00
2019-07-16 13:17:00 +02:00
2019-07-08 09:54:55 -07:00
2019-06-05 17:36:37 +02:00
2019-07-13 15:02:27 -07:00
2019-07-19 17:13:56 -07:00
2019-06-19 17:09:55 +02:00
2019-06-17 20:20:36 -07:00
2019-05-24 17:27:13 +02:00
2019-07-04 17:34:34 +01:00
2019-05-30 11:26:32 -07:00
2019-06-19 17:09:55 +02:00
2019-07-25 15:37:04 +02:00
2019-07-19 17:13:56 -07:00
2019-07-01 11:52:43 +05:30
2019-07-04 17:35:11 +01:00
2019-06-05 17:37:09 +02:00
2019-07-18 14:32:33 -07:00
2019-07-12 15:13:55 -07:00
2019-06-19 17:09:07 +02:00
2019-06-05 17:30:29 +02:00
2019-06-19 17:09:55 +02:00
2019-06-05 17:37:05 +02:00
2019-07-18 09:12:34 -07:00
2019-05-24 17:27:12 +02:00
2019-05-06 11:55:39 +02:00
2019-06-05 17:37:06 +02:00
2019-05-24 17:39:02 +02:00
2019-05-30 11:29:55 -07:00
2019-06-19 17:09:07 +02:00
2019-06-24 19:23:39 +02:00
2019-05-30 11:26:35 -07:00
2019-06-05 17:36:37 +02:00
2019-05-09 00:41:00 -05:00
2019-05-24 17:27:11 +02:00
2019-05-24 17:27:11 +02:00
2019-05-24 17:27:11 +02:00
2019-05-24 17:27:11 +02:00
2019-05-24 17:27:11 +02:00
2019-06-05 17:37:06 +02:00
2019-06-05 17:37:17 +02:00
2019-05-21 11:28:46 +02:00
2019-03-15 11:25:48 -07:00
2019-05-30 11:26:32 -07:00
2019-06-05 17:37:17 +02:00
2019-07-08 18:55:42 -07:00
2019-05-24 17:37:52 +02:00
2019-05-24 17:37:52 +02:00
2019-08-27 09:22:38 -06:00
2019-08-27 09:22:38 -06:00
2019-05-24 20:19:17 +02:00
2019-06-05 17:37:07 +02:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-14 19:52:50 -07:00
2019-07-01 08:18:54 -06:00
2019-05-30 11:26:41 -07:00
2019-05-14 19:52:49 -07:00
2019-04-05 16:02:30 -10:00
2019-07-16 19:23:22 -07:00
2019-08-14 08:50:01 -06:00
2019-08-04 21:41:29 -06:00
2019-04-30 16:12:02 -06:00
2019-08-27 10:40:19 -06:00
2019-08-27 10:40:20 -06:00
2019-05-24 17:36:45 +02:00
2019-06-27 15:25:16 -07:00
2019-06-20 00:06:27 -04:00
2019-06-27 15:25:16 -07:00
2019-06-27 15:25:16 -07:00
2019-03-26 11:24:47 -07:00
2019-04-30 16:11:59 -06:00
2019-04-09 17:05:46 -07:00
2019-03-07 18:31:59 -08:00
2019-05-07 08:39:02 -06:00
2019-06-19 17:09:55 +02:00
2019-06-04 13:42:54 +01:00
2019-03-07 12:20:11 -08:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:08 +02:00
2019-07-15 11:03:02 -03:00
2019-07-15 21:20:52 -07:00
2019-07-12 11:11:30 -07:00
2019-07-22 14:32:20 -07:00
2019-06-19 17:09:55 +02:00
2019-06-05 17:36:37 +02:00
2019-06-19 17:09:55 +02:00
2019-07-16 19:23:23 -07:00
2019-03-05 21:07:20 -08:00
2019-07-16 19:23:24 -07:00
2019-07-18 21:01:06 +02:00
2019-07-18 21:01:06 +02:00
2019-07-09 13:55:46 +02:00
2019-05-30 11:25:18 -07:00
2019-07-21 13:31:14 -07:00
2019-06-12 20:27:13 +02:00
2019-05-18 15:52:26 -07:00
2019-06-19 17:09:55 +02:00
2019-04-25 22:00:16 +02:00
2019-06-20 07:56:13 +02:00
2019-05-24 17:27:11 +02:00
2019-04-25 21:33:37 +02:00
2019-04-25 21:33:37 +02:00
2019-06-05 17:37:06 +02:00
2019-05-30 11:26:39 -07:00
2019-06-05 17:36:37 +02:00
2019-06-19 17:09:55 +02:00
2019-06-03 12:02:03 +02:00
2019-06-19 17:09:55 +02:00
2019-07-18 09:49:30 +02:00
2019-07-12 12:24:03 -07:00
2019-04-10 00:32:34 +02:00
2019-05-14 19:52:50 -07:00
2019-06-19 17:09:06 +02:00
2019-06-19 17:09:06 +02:00
2019-07-24 10:12:09 -07:00
2019-07-08 20:57:08 -07:00
2019-05-30 11:29:53 -07:00
2019-07-05 15:19:10 -07:00
2019-05-24 17:27:11 +02:00
2019-07-19 10:42:02 -07:00
2019-06-03 16:34:27 +02:00
2019-03-07 18:32:01 -08:00
2019-05-30 11:26:37 -07:00
2019-06-05 17:37:05 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-07-18 14:49:33 -07:00
2019-07-27 08:25:51 -07:00
2019-05-24 17:37:52 +02:00
2019-06-05 17:37:17 +02:00
2019-07-11 11:49:55 -03:00
2019-05-30 11:29:21 -07:00
2019-05-30 11:29:21 -07:00
2019-06-19 17:09:55 +02:00
2019-07-15 19:04:27 -07:00
2019-06-03 16:00:07 +02:00
2019-06-05 17:37:06 +02:00
2019-07-16 22:15:46 +02:00
2019-05-30 11:26:41 -07:00
2019-05-30 11:26:41 -07:00
2019-05-30 11:26:41 -07:00
2019-06-24 10:23:16 +02:00
2019-07-23 17:43:58 +02:00
2019-07-08 14:19:33 -07:00
2019-07-17 09:55:43 -07:00
2019-07-12 11:05:41 -07:00
2019-03-29 07:35:00 +01:00
2019-06-27 23:02:12 +01:00
2019-05-24 17:37:53 +02:00
2019-06-19 17:09:55 +02:00
2019-05-01 12:29:28 -04:00
2019-06-05 17:36:37 +02:00
2019-05-30 11:26:35 -07:00
2019-06-24 23:57:50 +03:00
2019-07-23 07:25:09 -06:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:29:19 -07:00
2019-06-24 19:23:39 +02:00
2019-02-28 03:28:53 -05:00
2019-05-30 11:26:32 -07:00
2019-05-25 16:33:36 -07:00
2019-05-30 11:26:32 -07:00
2019-06-05 17:36:37 +02:00
2019-06-05 17:36:37 +02:00
2019-05-08 21:23:11 -07:00
2019-06-14 14:21:07 -06:00
2019-06-12 20:30:39 +02:00
2019-06-12 20:30:39 +02:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-06-19 17:09:55 +02:00
2019-02-28 08:24:23 -07:00
2019-07-15 23:15:53 +02:00
2019-06-05 17:36:37 +02:00
2019-05-30 11:26:35 -07:00
2019-06-24 09:16:47 +10:00
2019-03-05 21:07:18 -08:00
2019-07-19 10:42:02 -07:00
2019-05-24 17:27:11 +02:00
2019-07-16 22:52:37 -04:00
2019-07-30 13:16:57 -06:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-28 10:27:53 -07:00
2019-06-19 17:09:11 +02:00
2019-05-30 11:26:41 -07:00
2019-07-03 18:52:20 +02:00
2019-05-30 11:26:35 -07:00
2019-05-30 11:26:32 -07:00
2019-05-24 17:27:12 +02:00
2019-07-10 20:09:17 -07:00
2019-06-20 14:47:54 +02:00
2019-05-25 23:04:42 -04:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-07-12 15:13:55 -07:00
2019-06-01 15:51:32 -07:00
2019-04-22 09:48:12 -06:00
2019-03-22 10:38:23 -04:00
2019-05-14 09:47:47 -07:00
2019-06-13 02:38:28 +02:00
2019-05-30 11:29:53 -07:00
2019-06-04 14:03:53 +02:00
2019-05-30 11:26:35 -07:00
2019-05-30 11:26:32 -07:00
2019-06-05 17:37:06 +02:00
2019-06-05 17:37:06 +02:00
2019-05-30 11:26:35 -07:00
2019-05-30 11:26:35 -07:00
2019-06-05 17:36:38 +02:00
2019-05-30 11:26:32 -07:00
2019-07-25 16:14:39 -03:00
2019-06-25 12:59:43 +10:00
2019-06-22 21:21:04 +02:00
2019-06-22 21:21:04 +02:00
2019-07-18 17:08:06 -07:00
2019-07-12 11:05:45 -07:00
2019-07-15 11:03:02 -03:00
2019-05-24 17:36:45 +02:00
2019-05-24 17:36:45 +02:00
2019-06-05 17:37:17 +02:00
2019-06-29 21:08:14 -07:00
2019-06-05 17:37:05 +02:00
2019-04-16 13:08:16 +02:00
2019-05-21 11:28:39 +02:00
2019-05-21 11:28:39 +02:00
2019-05-21 11:28:39 +02:00
2019-05-21 11:28:39 +02:00
2019-06-26 15:10:35 +02:00
2019-06-19 17:09:55 +02:00
2019-05-30 11:26:32 -07:00
2019-07-09 14:52:14 -07:00
2019-07-01 19:15:46 -07:00
2019-06-22 08:59:24 -04:00
2019-05-30 11:26:41 -07:00
2019-05-30 11:26:32 -07:00
2019-07-05 21:34:50 +02:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-23 09:48:07 -07:00
2019-07-08 19:25:19 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:37 -07:00
2019-05-30 11:26:32 -07:00
2019-06-07 11:00:14 -07:00
2019-07-08 20:28:59 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-06-26 13:19:46 -07:00
2019-05-30 11:26:32 -07:00
2019-06-02 18:08:36 -07:00
2019-07-04 22:01:59 -04:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-05 17:37:17 +02:00
2019-07-15 11:42:31 +02:00
2019-07-04 17:26:48 +02:00
2019-06-26 14:08:11 +02:00
2019-05-30 11:26:41 -07:00
2019-07-04 17:26:48 +02:00
2019-06-14 16:08:36 -05:00
2019-05-30 11:26:35 -07:00
2019-06-19 17:09:56 +02:00
2019-06-25 12:51:25 +01:00
2019-07-16 19:23:22 -07:00
2019-07-17 07:21:02 -07:00
2019-07-04 17:26:48 +02:00
2019-06-14 14:31:48 -06:00
2019-07-14 19:42:11 -07:00
2019-07-23 09:51:00 +02:00
2019-05-30 11:26:32 -07:00
2019-06-05 17:37:17 +02:00
2019-05-14 19:52:52 -07:00
2019-05-30 11:26:32 -07:00
2019-03-03 21:05:10 -08:00
2019-05-01 10:41:38 +01:00
2019-06-19 17:09:55 +02:00
2019-05-01 10:49:17 +01:00
2019-05-24 17:36:45 +02:00
2019-06-05 17:36:37 +02:00
2019-06-05 17:36:37 +02:00
2019-07-08 14:01:43 +02:00
2019-06-20 17:32:21 -04:00
2019-06-10 13:00:24 +02:00
2019-04-08 22:56:14 +02:00
2019-05-30 11:26:35 -07:00
2019-06-14 19:31:47 -07:00
2019-06-17 12:09:22 +02:00
2019-05-30 11:26:32 -07:00
2019-07-12 11:05:42 -07:00
2019-07-12 11:05:42 -07:00
2019-03-28 10:58:28 +01:00
2019-03-04 13:42:05 +01:00
2019-07-16 19:23:21 -07:00
2019-06-05 17:37:16 +02:00
2019-07-08 19:36:47 -07:00
2019-07-10 18:43:43 -07:00
2019-05-24 17:27:11 +02:00
2019-05-24 17:36:45 +02:00
2019-06-19 17:09:08 +02:00
2019-06-05 17:37:06 +02:00
2019-05-24 17:36:45 +02:00
2019-04-25 22:06:10 +02:00
2019-07-16 19:23:22 -07:00
2019-06-05 17:37:16 +02:00
2019-05-30 11:29:19 -07:00
2019-05-30 11:29:19 -07:00
2019-03-05 21:07:15 -08:00
2019-05-14 19:52:48 -07:00
2019-07-20 09:00:45 +02:00
2019-06-19 17:09:07 +02:00
2019-06-19 17:09:56 +02:00
2019-05-14 19:52:49 -07:00
2019-06-19 17:09:55 +02:00
2019-05-30 11:29:22 -07:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-06-05 17:37:17 +02:00
2019-06-19 17:09:55 +02:00
2019-06-05 17:37:07 +02:00
2019-05-24 22:40:45 +02:00
2019-06-19 17:09:55 +02:00
2019-05-21 11:28:46 +02:00
2019-05-24 17:39:02 +02:00
2019-07-05 15:19:10 -07:00
2019-06-19 17:09:55 +02:00
2019-08-06 08:20:10 -06:00
2019-03-07 18:31:59 -08:00
2019-04-18 16:18:27 -04:00
2019-06-01 15:51:31 -07:00
2019-05-14 19:52:49 -07:00
2019-06-29 01:31:08 +02:00
2019-07-11 15:30:05 -07:00
2019-06-05 17:37:06 +02:00
2019-07-15 08:53:27 -03:00
2019-06-24 19:23:44 +02:00
2019-05-24 17:37:53 +02:00
2019-06-08 13:42:13 -06:00
2019-07-16 19:23:24 -07:00
2019-03-07 18:32:03 -08:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-04-23 10:40:32 -07:00
2019-04-02 09:50:48 +02:00
2019-06-19 17:09:55 +02:00
2019-06-05 17:37:17 +02:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-03-28 02:07:54 +09:00
2019-06-19 17:09:55 +02:00
2019-05-30 11:26:32 -07:00
2019-08-27 09:22:38 -06:00
2019-07-18 17:08:07 -07:00
2019-07-18 17:08:07 -07:00
2019-07-02 14:32:44 -03:00
2019-06-19 17:09:55 +02:00
2019-06-05 17:36:38 +02:00
2019-05-30 11:26:32 -07:00
2019-05-21 11:28:45 +02:00
2019-07-18 17:08:07 -07:00
2019-03-27 22:49:06 -07:00
2019-05-30 11:26:41 -07:00
2019-05-14 09:47:46 -07:00
2019-07-14 19:42:11 -07:00
2019-06-19 17:09:55 +02:00
2019-07-18 17:08:07 -07:00
2019-05-14 09:47:49 -07:00
2019-07-18 17:08:07 -07:00
2019-07-25 20:12:38 +03:00
2019-05-28 09:03:35 -07:00
2019-06-24 14:00:32 +02:00
2019-05-07 21:50:24 +09:00
2019-04-04 21:04:13 -04:00
2019-05-24 17:27:10 +02:00
2019-06-13 08:59:34 -04:00
2019-07-15 08:53:27 -03:00
2019-05-30 11:26:32 -07:00
2019-07-03 19:28:40 +02:00
2019-05-30 11:26:35 -07:00
2019-06-05 17:36:38 +02:00
2019-07-08 19:25:19 -07:00
2019-05-30 11:26:32 -07:00
2019-07-01 19:34:46 -07:00
2019-06-21 17:21:11 +02:00
2019-05-31 18:02:48 +02:00
2019-07-01 19:12:10 -07:00
2019-07-18 15:50:28 -04:00
2019-07-06 14:54:50 -04:00
2019-07-06 14:54:49 -04:00
2019-04-25 14:18:15 -04:00
2019-03-01 16:20:16 -05:00
2019-05-30 11:26:41 -07:00
2019-07-18 17:08:06 -07:00
2019-03-05 21:07:20 -08:00
2019-06-13 09:02:33 -04:00
2019-06-21 11:08:37 +02:00
2019-04-25 16:51:42 +02:00
2019-07-09 14:15:37 -07:00
2019-04-25 19:43:12 +02:00
2019-05-24 16:39:14 -05:00
2019-06-05 17:37:16 +02:00
2019-06-05 17:37:16 +02:00
2019-02-28 11:40:49 -06:00
2019-07-26 17:01:29 -06:00
2019-05-24 17:27:11 +02:00
2019-05-20 17:27:08 +03:00
2019-06-19 17:09:55 +02:00
2019-05-30 11:26:32 -07:00
2019-06-19 17:09:55 +02:00
2019-07-10 23:08:44 -05:00
2019-05-30 11:26:35 -07:00
2019-07-12 11:05:47 -07:00
2019-06-05 17:30:29 +02:00
2019-05-16 10:29:00 -07:00
2019-05-03 10:49:17 -04:00
2019-06-05 17:37:06 +02:00
2019-07-12 11:05:43 -07:00
2019-08-03 07:02:01 -07:00
2019-08-01 06:39:33 +02:00
2019-07-12 11:05:43 -07:00
2019-05-30 11:26:39 -07:00
2019-07-12 11:05:43 -07:00
2019-03-25 14:49:00 -07:00
2019-05-30 11:29:19 -07:00
2019-04-23 16:38:09 -05:00
2019-07-17 09:55:43 -07:00
2019-06-21 18:11:53 -05:00
2019-06-21 22:05:42 -04:00
2019-02-28 11:09:29 +01:00
2019-04-25 16:33:07 -05:00
2019-04-15 13:24:02 +01:00
2019-04-15 13:24:02 +01:00
2019-07-21 09:46:59 -07:00
2019-06-19 17:09:55 +02:00
2019-06-05 17:37:07 +02:00
2019-05-21 10:50:45 +02:00
2019-05-09 10:51:06 -07:00
2019-07-08 16:12:03 -07:00
2019-03-13 12:25:31 -07:00
2019-07-13 11:21:28 +02:00
2019-06-24 19:19:23 +02:00
2019-07-16 19:23:25 -07:00
2019-06-05 17:37:07 +02:00
2019-05-30 11:26:37 -07:00
2019-07-12 15:26:29 -07:00
2019-07-08 19:48:57 -07:00
2019-07-16 19:23:24 -07:00
2019-04-26 11:09:55 -07:00
2019-05-30 11:29:52 -07:00
2019-07-15 11:03:02 -03:00
2019-05-21 11:28:45 +02:00
2019-06-05 17:37:07 +02:00
2019-06-05 17:37:16 +02:00
2019-06-05 17:37:16 +02:00
2019-06-26 10:53:57 +02:00
2019-07-04 10:40:54 +02:00
2019-06-05 17:37:16 +02:00
2019-06-22 11:28:37 +02:00
2019-07-15 20:44:49 -07:00
2019-05-24 17:36:45 +02:00
2019-07-16 19:23:22 -07:00
2019-05-14 19:52:48 -07:00
2019-05-24 17:36:45 +02:00
2019-07-15 21:06:15 -07:00
2019-06-05 17:37:04 +02:00
2019-05-30 11:26:32 -07:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-05-24 17:36:45 +02:00
2019-05-24 17:36:45 +02:00
2019-05-14 19:52:51 -07:00
2019-06-12 11:42:13 +02:00
2019-06-15 12:25:49 +02:00
2019-07-09 10:28:47 -07:00
2019-05-30 11:26:41 -07:00
2019-05-25 18:00:04 -04:00
2019-05-14 19:52:48 -07:00
2019-05-14 19:52:48 -07:00
2019-06-19 17:09:55 +02:00
2019-06-05 17:36:37 +02:00
2019-06-05 17:37:06 +02:00
2019-05-24 17:36:45 +02:00
2019-06-13 22:34:55 -07:00
2019-05-30 11:26:32 -07:00
2019-05-29 09:31:44 -05:00
2019-06-26 11:39:11 +02:00
2019-06-19 17:09:55 +02:00
2019-06-05 17:36:37 +02:00
2019-05-14 19:52:48 -07:00
2019-05-30 11:26:32 -07:00
2019-06-05 17:37:17 +02:00
2019-07-04 22:01:59 -04:00
2019-05-17 10:08:59 -07:00
2019-07-16 19:23:22 -07:00
2019-07-16 19:23:22 -07:00
2019-05-28 09:05:23 -07:00
2019-06-28 19:46:47 +02:00
2019-04-03 12:34:31 +02:00
2019-05-14 19:52:51 -07:00
2019-07-09 12:34:26 -07:00
2019-05-30 11:29:21 -07:00
2019-03-07 18:32:03 -08:00
2019-06-29 12:02:17 -07:00
2019-06-12 15:27:44 +01:00
2019-04-02 17:57:35 +02:00
2019-06-05 17:36:37 +02:00
2019-04-07 19:12:12 -07:00
2019-05-29 13:27:08 -07:00
2019-03-13 09:46:10 -04:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-06-19 17:09:55 +02:00
2019-06-05 17:37:17 +02:00
2019-05-08 22:14:36 +02:00
2019-05-21 11:28:46 +02:00
2019-05-21 11:28:46 +02:00
2019-06-19 17:09:07 +02:00
2019-07-15 08:53:27 -03:00
2019-06-05 17:37:06 +02:00
2019-06-20 15:21:33 -04:00
2019-06-19 17:09:55 +02:00
2019-07-25 15:37:05 +02:00
2019-06-12 12:29:20 +01:00
2019-05-30 11:29:52 -07:00
2019-05-24 17:39:00 +02:00
2019-05-30 11:26:32 -07:00
2019-06-14 09:02:42 -04:00
2019-06-29 10:33:57 -06:00
2019-04-19 15:09:10 +02:00
2019-06-05 17:37:17 +02:00
2019-07-03 17:52:50 -04:00
2019-05-30 11:26:41 -07:00
2019-06-05 17:36:37 +02:00
2019-06-21 10:18:43 +02:00
2019-07-15 11:03:03 -03:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:35 -07:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:55 +02:00
2019-05-31 12:37:46 -07:00
2019-06-19 17:09:55 +02:00
2019-06-19 17:09:06 +02:00
2019-04-19 09:46:04 -07:00
2019-07-16 19:23:24 -07:00
2019-07-09 09:07:00 -07:00
2019-03-27 14:29:26 -07:00
2019-07-09 11:35:38 -07:00
2019-05-30 11:26:32 -07:00
2019-07-09 12:11:59 -07:00
2019-05-23 16:13:29 +02:00
2019-05-16 15:51:55 -07:00
2019-07-12 11:05:44 -07:00
2019-03-05 21:07:14 -08:00
2019-06-19 17:09:55 +02:00
2019-05-30 11:29:19 -07:00
2019-07-08 16:12:03 -07:00
2019-04-24 12:17:08 +02:00
2019-05-30 11:26:35 -07:00
2019-07-09 14:32:14 -06:00
2019-05-24 17:36:45 +02:00
2019-04-08 11:59:47 +01:00
2019-06-05 17:36:37 +02:00
2019-03-26 14:39:24 -07:00
2019-05-28 09:03:35 -07:00
2019-06-05 17:36:37 +02:00
2019-05-30 11:26:37 -07:00
2019-04-29 12:37:57 +02:00
2019-06-17 20:20:36 -07:00
2019-06-05 17:37:16 +02:00
2019-05-30 11:26:32 -07:00
2019-06-15 12:25:55 +02:00
2019-07-03 17:52:50 -04:00
2019-04-08 16:44:21 -06:00
2019-07-08 10:51:25 +02:00
2019-07-12 11:05:43 -07:00
2019-07-16 19:23:21 -07:00
2019-03-10 12:47:57 -07:00
2019-06-05 17:36:37 +02:00
2019-06-19 17:09:55 +02:00
2019-05-30 11:29:22 -07:00
2019-07-19 10:42:02 -07:00
2019-06-05 17:37:16 +02:00
2019-07-18 17:08:07 -07:00
2019-06-03 11:58:20 +02:00
2019-05-21 11:28:46 +02:00
2019-06-05 17:37:06 +02:00
2019-06-19 17:09:55 +02:00
2019-06-22 16:30:37 -07:00
2019-06-05 17:36:37 +02:00
2019-05-30 11:26:32 -07:00
2019-06-27 21:22:15 +08:00
2019-04-18 11:18:53 +03:00
2019-06-05 17:37:06 +02:00
2019-04-09 08:31:51 -07:00
2019-05-06 19:40:31 -07:00
2019-06-19 17:09:55 +02:00
2019-05-30 11:29:19 -07:00
2019-05-30 11:29:19 -07:00
2019-03-28 13:41:06 +01:00
2019-05-30 11:26:37 -07:00
2019-06-25 08:54:51 +02:00
2019-07-07 11:50:03 +02:00
2019-06-19 17:09:55 +02:00
2019-05-23 10:08:34 +02:00
2019-05-28 09:06:09 -07:00
2019-05-24 17:39:02 +02:00
2019-06-24 23:57:49 +03:00
2019-06-05 17:37:17 +02:00
2019-07-16 15:14:48 -04:00
2019-06-19 17:09:55 +02:00
2019-07-16 19:23:24 -07:00
2019-04-26 19:04:19 -07:00
2019-06-05 17:37:09 +02:00
2019-06-05 17:37:17 +02:00
2019-06-03 12:32:57 +02:00
2019-05-25 23:04:43 -04:00
2019-06-19 17:09:55 +02:00
2019-05-30 11:26:32 -07:00
2019-06-05 17:37:04 +02:00
2019-07-13 10:36:53 -07:00
2019-06-19 23:45:09 -04:00
2019-05-30 11:26:35 -07:00
2019-06-05 11:54:38 +02:00
2019-06-26 21:02:32 +01:00
2019-05-14 09:47:45 -07:00
2019-05-30 11:26:41 -07:00
2019-06-05 17:30:29 +02:00
2019-03-28 01:55:18 +09:00
2019-05-24 17:27:11 +02:00
2019-05-30 11:26:41 -07:00
2019-06-19 17:09:55 +02:00
2019-03-07 10:34:37 +01:00
2019-05-24 17:27:13 +02:00
2019-05-24 17:27:13 +02:00
2019-06-05 17:30:27 +02:00
2019-03-06 11:19:57 -05:00
2019-04-08 17:05:52 -04:00
2019-05-12 13:11:36 -04:00
2019-05-24 17:39:00 +02:00
2019-06-05 17:37:05 +02:00
2019-07-12 11:05:47 -07:00
2019-07-12 11:05:43 -07:00
2019-05-14 09:47:45 -07:00
2019-06-05 17:37:05 +02:00
2019-06-21 16:04:05 +02:00
2019-05-30 11:26:35 -07:00
2019-06-19 17:09:55 +02:00
2019-05-30 11:26:37 -07:00
2019-05-15 17:35:54 +01:00
2019-07-18 10:20:13 -06:00
2019-06-05 17:37:07 +02:00
2019-07-14 16:51:47 -07:00
2019-06-27 14:12:15 -07:00
2019-08-27 09:22:38 -06:00
2019-05-31 13:52:41 -04:00
2019-05-24 17:36:47 +02:00