Message ID | 1452865035-19681-1-git-send-email-bigeasy@linutronix.de (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
On Fri, Jan 15, 2016 at 02:37:15PM +0100, Sebastian Andrzej Siewior wrote: > 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. Right, and it hasn't been invoked anywhere since it's introduction. Accidentally working because the initial value is 0 (and the device struct is zeroed), but the lockdep structure is not valid. > Fixes: 7cc8e58d53cd ("Btrfs: fix unprotected device's variants on 32bits machine") > Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Reviewed-by: David Sterba <dsterba@suse.com> -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c index a23399e8e3ab..1fc2e13fc2c1 100644 --- a/fs/btrfs/volumes.c +++ b/fs/btrfs/volumes.c @@ -232,6 +232,7 @@ static struct btrfs_device *__alloc_device(void) 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);
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(+)