38 lines
1.4 KiB
Diff
38 lines
1.4 KiB
Diff
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
|
Date: Fri, 15 Jan 2016 14:28:39 +0100
|
|
Subject: btrfs: initialize the seq counter in struct btrfs_device
|
|
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz
|
|
|
|
I managed to trigger this:
|
|
| INFO: trying to register non-static key.
|
|
| the code is fine but needs lockdep annotation.
|
|
| turning off the locking correctness validator.
|
|
| CPU: 1 PID: 781 Comm: systemd-gpt-aut Not tainted 4.4.0-rt2+ #14
|
|
| Hardware name: ARM-Versatile Express
|
|
| [<80307cec>] (dump_stack)
|
|
| [<80070e98>] (__lock_acquire)
|
|
| [<8007184c>] (lock_acquire)
|
|
| [<80287800>] (btrfs_ioctl)
|
|
| [<8012a8d4>] (do_vfs_ioctl)
|
|
| [<8012ac14>] (SyS_ioctl)
|
|
|
|
so I think that btrfs_device_data_ordered_init() is not invoked behind
|
|
a macro somewhere.
|
|
|
|
Fixes: 7cc8e58d53cd ("Btrfs: fix unprotected device's variants on 32bits machine")
|
|
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
|
---
|
|
fs/btrfs/volumes.c | 1 +
|
|
1 file changed, 1 insertion(+)
|
|
|
|
--- a/fs/btrfs/volumes.c
|
|
+++ b/fs/btrfs/volumes.c
|
|
@@ -232,6 +232,7 @@ static struct btrfs_device *__alloc_devi
|
|
spin_lock_init(&dev->reada_lock);
|
|
atomic_set(&dev->reada_in_flight, 0);
|
|
atomic_set(&dev->dev_stats_ccnt, 0);
|
|
+ btrfs_device_data_ordered_init(dev);
|
|
INIT_RADIX_TREE(&dev->reada_zones, GFP_NOFS & ~__GFP_DIRECT_RECLAIM);
|
|
INIT_RADIX_TREE(&dev->reada_extents, GFP_NOFS & ~__GFP_DIRECT_RECLAIM);
|
|
|