2013-04-30 00:44:33 -05:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-11-19 14:51:04 -08:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2010-11-19 14:51:04 -08:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
2018-02-02 15:23:22 +01:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2019-03-25 16:38:32 +00:00
|
|
|
|
2013-05-01 12:43:03 -05:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-01-13 17:20:04 +01:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
|
|
|
|
|
2013-05-01 12:43:03 -05:00
|
|
|
|
2013-12-13 15:28:57 +02:00
|
|
|
|
2014-08-04 18:04:39 +04:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-09-06 16:00:54 -05:00
|
|
|
|
|
|
|
|
|
2013-05-08 22:50:04 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
atomics/treewide: Rename __atomic_add_unless() => atomic_fetch_add_unless()
While __atomic_add_unless() was originally intended as a building-block
for atomic_add_unless(), it's now used in a number of places around the
kernel. It's the only common atomic operation named __atomic*(), rather
than atomic_*(), and for consistency it would be better named
atomic_fetch_add_unless().
This lack of consistency is slightly confusing, and gets in the way of
scripting atomics. Given that, let's clean things up and promote it to
an official part of the atomics API, in the form of
atomic_fetch_add_unless().
This patch converts definitions and invocations over to the new name,
including the instrumented version, using the following script:
----
git grep -w __atomic_add_unless | while read line; do
sed -i '{s/\<__atomic_add_unless\>/atomic_fetch_add_unless/}' "${line%%:*}";
done
git grep -w __arch_atomic_add_unless | while read line; do
sed -i '{s/\<__arch_atomic_add_unless\>/arch_atomic_fetch_add_unless/}' "${line%%:*}";
done
----
Note that we do not have atomic{64,_long}_fetch_add_unless(), which will
be introduced by later patches.
There should be no functional change as a result of this patch.
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Will Deacon <will.deacon@arm.com>
Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Palmer Dabbelt <palmer@sifive.com>
Cc: Boqun Feng <boqun.feng@gmail.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/lkml/20180621121321.4761-2-mark.rutland@arm.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2018-06-21 13:13:04 +01:00
|
|
|
|
2013-05-08 22:50:04 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-01-29 13:57:44 -06:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2013-12-16 19:26:32 +02:00
|
|
|
|
|
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2015-10-11 19:38:00 +02:00
|
|
|
|
|
|
|
|
|
2012-07-03 16:01:19 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-07-03 16:01:19 -05:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-04-30 00:44:33 -05:00
|
|
|
|
|
|
|
|
|
2012-10-30 19:40:33 -05:00
|
|
|
|
|
|
|
|
|
2012-07-03 16:01:19 -05:00
|
|
|
|
2012-10-30 19:40:33 -05:00
|
|
|
|
2012-07-03 16:01:19 -05:00
|
|
|
|
2012-07-10 20:30:11 -05:00
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
2016-08-12 16:11:41 +02:00
|
|
|
|
|
|
|
|
|
2012-10-09 13:50:17 -07:00
|
|
|
|
|
|
|
|
|
2017-03-02 19:56:57 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-05 19:25:11 +02:00
|
|
|
|
|
|
|
|
|
2019-02-25 18:55:38 +01:00
|
|
|
|
2017-03-02 19:56:57 +01:00
|
|
|
|
2018-01-16 15:41:54 +01:00
|
|
|
|
2017-03-02 19:56:57 +01:00
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
2017-01-25 18:16:22 +01:00
|
|
|
|
2019-06-05 19:25:11 +02:00
|
|
|
|
|
|
|
|
|
2019-02-25 18:55:38 +01:00
|
|
|
|
2018-01-16 15:41:54 +01:00
|
|
|
|
|
|
|
|
|
2012-10-09 13:50:17 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-10-25 23:34:40 -05:00
|
|
|
|
2012-10-09 13:50:17 -07:00
|
|
|
|
2012-02-02 08:13:30 -06:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-05-06 09:51:29 -05:00
|
|
|
|
2012-07-09 21:04:24 -05:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2013-05-06 09:51:29 -05:00
|
|
|
|
|
|
|
|
|
2017-01-25 18:16:22 +01:00
|
|
|
|
2013-05-06 09:51:29 -05:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2012-08-31 17:29:51 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-05-06 09:51:29 -05:00
|
|
|
|
|
|
|
|
|
2011-03-21 15:10:11 -07:00
|
|
|
|
|
|
|
|
|
2012-10-25 23:34:41 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-11-01 08:39:26 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-10-25 23:34:41 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-04-26 09:43:47 -05:00
|
|
|
|
2018-07-03 15:28:43 +02:00
|
|
|
|
2012-10-25 23:34:41 -05:00
|
|
|
|
2013-04-26 09:43:47 -05:00
|
|
|
|
|
|
|
|
|
2012-10-25 23:34:41 -05:00
|
|
|
|
|
|
|
|
|
2013-04-26 09:43:47 -05:00
|
|
|
|
2012-10-25 23:34:41 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2012-01-29 13:57:44 -06:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-16 15:06:56 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-11-22 00:00:08 -06:00
|
|
|
|
|
|
|
|
|
2013-01-18 12:31:10 -06:00
|
|
|
|
2018-01-16 12:15:02 +01:00
|
|
|
|
2018-01-20 10:30:10 +01:00
|
|
|
|
2018-01-20 10:30:11 +01:00
|
|
|
|
2018-02-06 19:26:35 +01:00
|
|
|
|
2013-01-18 12:31:10 -06:00
|
|
|
|
2012-11-22 00:00:08 -06:00
|
|
|
|
2014-03-13 11:21:35 +08:00
|
|
|
|
2018-01-16 12:15:02 +01:00
|
|
|
|
2014-03-13 11:21:35 +08:00
|
|
|
|
2014-04-01 22:22:16 +08:00
|
|
|
|
2019-01-29 12:46:25 +01:00
|
|
|
|
2014-03-13 11:21:35 +08:00
|
|
|
|
|
|
|
|
|
2019-05-14 20:45:38 +02:00
|
|
|
|
|
|
|
|
|
2019-06-13 17:44:08 +02:00
|
|
|
|
2019-06-05 19:25:11 +02:00
|
|
|
|
|
|
|
|
|
2019-05-14 20:45:38 +02:00
|
|
|
|
2019-05-08 13:35:57 +02:00
|
|
|
|
2019-05-14 21:06:07 +02:00
|
|
|
|
|
|
|
|
|
2019-05-08 13:35:57 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-02-28 14:20:28 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
2019-02-28 14:20:28 +01:00
|
|
|
|
|
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
2019-05-14 21:06:07 +02:00
|
|
|
|
2019-06-05 19:25:11 +02:00
|
|
|
|
2019-05-14 21:06:07 +02:00
|
|
|
|
2019-06-13 17:44:08 +02:00
|
|
|
|
|
|
|
|
|
2019-06-05 19:25:11 +02:00
|
|
|
|
2019-06-13 17:44:08 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-05 19:25:11 +02:00
|
|
|
|
|
|
|
|
|
2019-06-13 17:44:08 +02:00
|
|
|
|
|
|
|
|
|
2013-02-11 12:33:24 -06:00
|
|
|
|
|
|
|
|
|
2012-11-22 00:00:08 -06:00
|
|
|
|
2018-02-02 15:23:22 +01:00
|
|
|
|
2019-05-14 20:45:38 +02:00
|
|
|
|
2013-02-11 12:33:24 -06:00
|
|
|
|
2019-05-08 13:35:57 +02:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
2012-11-22 00:00:08 -06:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
2018-02-06 19:26:33 +01:00
|
|
|
|
|
|
|
|
|
2012-11-22 00:00:08 -06:00
|
|
|
|
2013-01-17 12:25:27 -06:00
|
|
|
|
2018-01-20 10:30:10 +01:00
|
|
|
|
2013-02-11 12:33:24 -06:00
|
|
|
|
2018-01-20 10:30:11 +01:00
|
|
|
|
|
|
|
|
|
2018-02-06 19:26:35 +01:00
|
|
|
|
2013-02-11 12:33:24 -06:00
|
|
|
|
|
|
|
|
|
2019-06-13 17:44:08 +02:00
|
|
|
|
|
|
|
|
|
2018-01-20 10:30:11 +01:00
|
|
|
|
|
|
|
|
|
2012-11-22 00:00:08 -06:00
|
|
|
|
2019-05-27 11:41:36 +02:00
|
|
|
|
2012-11-22 00:00:08 -06:00
|
|
|
|
2019-05-14 21:06:07 +02:00
|
|
|
|
2019-06-13 17:44:08 +02:00
|
|
|
|
2012-11-22 00:00:08 -06:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-02-08 09:55:49 -06:00
|
|
|
|
2013-01-24 16:13:36 -06:00
|
|
|
|
2013-01-24 16:13:36 -06:00
|
|
|
|
2013-02-08 09:55:49 -06:00
|
|
|
|
|
|
|
|
|
2019-05-16 15:06:56 +02:00
|
|
|
|
|
|
|
|
|
2019-06-06 17:14:49 +02:00
|
|
|
|
2019-05-16 15:06:56 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-11-22 00:00:08 -06:00
|
|
|
|
|
|
|
|
|
2018-01-30 17:52:10 +01:00
|
|
|
|
2018-02-01 11:50:47 +01:00
|
|
|
|
2013-02-08 09:55:49 -06:00
|
|
|
|
2019-05-16 15:06:56 +02:00
|
|
|
|
2012-11-22 00:00:08 -06:00
|
|
|
|
2013-01-24 16:13:36 -06:00
|
|
|
|
2012-11-22 00:00:08 -06:00
|
|
|
|
2013-01-24 16:13:36 -06:00
|
|
|
|
2020-02-12 15:23:58 +01:00
|
|
|
|
2012-11-22 00:00:08 -06:00
|
|
|
|
2019-05-30 16:07:48 +02:00
|
|
|
|
2018-02-02 15:23:22 +01:00
|
|
|
|
2012-11-22 00:00:08 -06:00
|
|
|
|
2019-05-16 15:06:56 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-11-22 00:00:08 -06:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-02-02 15:23:22 +01:00
|
|
|
|
2012-11-22 00:00:08 -06:00
|
|
|
|
2018-02-02 15:23:22 +01:00
|
|
|
|
2012-11-22 00:00:08 -06:00
|
|
|
|
2016-08-12 16:11:41 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-07-23 17:54:39 +02:00
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-08-31 17:29:51 -05:00
|
|
|
|
2012-08-30 14:42:15 -05:00
|
|
|
|
2012-08-31 17:29:51 -05:00
|
|
|
|
|
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-07-03 16:01:19 -05:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
|
|
|
|
|
2013-12-13 15:28:57 +02:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
|
|
|
|
|
2012-07-10 20:30:11 -05:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-01-14 12:43:31 -06:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
|
|
|
|
|
2013-01-14 12:43:31 -06:00
|
|
|
|
2012-10-25 23:34:41 -05:00
|
|
|
|
2015-06-22 13:24:48 +03:00
|
|
|
|
2016-08-18 18:38:45 +02:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2016-04-29 20:01:25 +02:00
|
|
|
|
2016-05-26 01:15:02 +02:00
|
|
|
|
2012-10-25 23:34:41 -05:00
|
|
|
|
2016-08-12 15:45:52 +02:00
|
|
|
|
2012-11-14 12:25:19 -06:00
|
|
|
|
2016-08-12 16:11:41 +02:00
|
|
|
|
|
|
|
|
|
2016-05-26 01:15:02 +02:00
|
|
|
|
2016-08-12 16:11:41 +02:00
|
|
|
|
|
|
|
|
|
2011-03-21 15:10:11 -07:00
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
2017-04-13 12:17:38 +02:00
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-30 16:07:48 +02:00
|
|
|
|
2019-06-06 17:14:49 +02:00
|
|
|
|
2019-05-30 16:07:48 +02:00
|
|
|
|
2019-06-06 17:14:49 +02:00
|
|
|
|
|
|
|
|
|
2024-07-23 17:54:39 +02:00
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
2019-06-05 19:25:11 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
2016-08-12 15:45:52 +02:00
|
|
|
|
2011-03-21 15:10:11 -07:00
|
|
|
|
2012-10-25 23:34:42 -05:00
|
|
|
|
|
|
|
|
|
2013-05-08 22:50:04 -05:00
|
|
|
|
2012-10-30 19:40:33 -05:00
|
|
|
|
2012-10-25 23:34:42 -05:00
|
|
|
|
2015-01-13 17:20:04 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-11-21 17:11:12 -08:00
|
|
|
|
|
|
|
|
|
2012-08-31 17:29:51 -05:00
|
|
|
|
|
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
|
|
|
|
|
2010-11-19 14:51:04 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-01-14 12:43:31 -06:00
|
|
|
|
2010-11-19 14:51:04 -08:00
|
|
|
|
|
|
|
|
|
2013-01-14 12:43:31 -06:00
|
|
|
|
2016-09-29 13:41:05 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-01-14 12:43:31 -06:00
|
|
|
|
2013-01-14 12:43:31 -06:00
|
|
|
|
2019-11-18 12:51:02 +01:00
|
|
|
|
2013-01-14 12:43:31 -06:00
|
|
|
|
2019-11-07 17:16:23 +01:00
|
|
|
|
2013-01-14 12:43:31 -06:00
|
|
|
|
|
|
|
|
|
2013-05-31 17:40:45 -05:00
|
|
|
|
2012-01-29 13:57:44 -06:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2012-01-29 13:57:44 -06:00
|
|
|
|
|
|
|
|
|
2012-01-29 13:57:44 -06:00
|
|
|
|
|
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2013-05-01 12:43:04 -05:00
|
|
|
|
|
|
|
|
|
2013-05-01 12:43:03 -05:00
|
|
|
|
2013-05-01 12:43:03 -05:00
|
|
|
|
2013-05-01 12:43:03 -05:00
|
|
|
|
rbd: add support for single-major device number allocation scheme
Currently each rbd device is allocated its own major number, which
leads to a hard limit of 230-250 images mapped at once. This commit
adds support for a new single-major device number allocation scheme,
which is hidden behind a new single_major boolean module parameter and
is disabled by default for backwards compatibility reasons. (Old
userspace cannot correctly unmap images mapped under single-major
scheme and would essentially just unmap a random image, if that.)
$ rbd showmapped
id pool image snap device
0 rbd b100 - /dev/rbd0
1 rbd b101 - /dev/rbd1
2 rbd b102 - /dev/rbd2
3 rbd b103 - /dev/rbd3
Old scheme (modprobe rbd):
$ ls -l /dev/rbd*
brw-rw---- 1 root disk 253, 0 Dec 10 12:24 /dev/rbd0
brw-rw---- 1 root disk 252, 0 Dec 10 12:28 /dev/rbd1
brw-rw---- 1 root disk 252, 1 Dec 10 12:28 /dev/rbd1p1
brw-rw---- 1 root disk 252, 2 Dec 10 12:28 /dev/rbd1p2
brw-rw---- 1 root disk 252, 3 Dec 10 12:28 /dev/rbd1p3
brw-rw---- 1 root disk 251, 0 Dec 10 12:28 /dev/rbd2
brw-rw---- 1 root disk 251, 1 Dec 10 12:28 /dev/rbd2p1
brw-rw---- 1 root disk 250, 0 Dec 10 12:24 /dev/rbd3
New scheme (modprobe rbd single_major=Y):
$ ls -l /dev/rbd*
brw-rw---- 1 root disk 253, 0 Dec 10 12:30 /dev/rbd0
brw-rw---- 1 root disk 253, 256 Dec 10 12:30 /dev/rbd1
brw-rw---- 1 root disk 253, 257 Dec 10 12:30 /dev/rbd1p1
brw-rw---- 1 root disk 253, 258 Dec 10 12:30 /dev/rbd1p2
brw-rw---- 1 root disk 253, 259 Dec 10 12:30 /dev/rbd1p3
brw-rw---- 1 root disk 253, 512 Dec 10 12:30 /dev/rbd2
brw-rw---- 1 root disk 253, 513 Dec 10 12:30 /dev/rbd2p1
brw-rw---- 1 root disk 253, 768 Dec 10 12:30 /dev/rbd3
(major 253 was assigned dynamically at module load time)
The new limit is 4096 images mapped at once, and it comes from the fact
that, as before, 256 minor numbers are reserved for each mapping.
(A follow-up commit changes the number of minors reserved and the way
we deal with partitions over that number.)
If single_major is set to true, two new sysfs interfaces show up:
/sys/bus/rbd/{add,remove}_single_major. These are to be used instead
of /sys/bus/rbd/{add,remove}, which are disabled for backwards
compatibility reasons outlined above.
Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
Reviewed-by: Alex Elder <elder@linaro.org>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2013-12-13 15:28:57 +02:00
|
|
|
|
2013-12-13 15:28:57 +02:00
|
|
|
|
|
|
|
|
|
2014-10-09 17:06:01 +04:00
|
|
|
|
|
|
|
|
|
2019-02-28 14:20:28 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
rbd: add support for single-major device number allocation scheme
Currently each rbd device is allocated its own major number, which
leads to a hard limit of 230-250 images mapped at once. This commit
adds support for a new single-major device number allocation scheme,
which is hidden behind a new single_major boolean module parameter and
is disabled by default for backwards compatibility reasons. (Old
userspace cannot correctly unmap images mapped under single-major
scheme and would essentially just unmap a random image, if that.)
$ rbd showmapped
id pool image snap device
0 rbd b100 - /dev/rbd0
1 rbd b101 - /dev/rbd1
2 rbd b102 - /dev/rbd2
3 rbd b103 - /dev/rbd3
Old scheme (modprobe rbd):
$ ls -l /dev/rbd*
brw-rw---- 1 root disk 253, 0 Dec 10 12:24 /dev/rbd0
brw-rw---- 1 root disk 252, 0 Dec 10 12:28 /dev/rbd1
brw-rw---- 1 root disk 252, 1 Dec 10 12:28 /dev/rbd1p1
brw-rw---- 1 root disk 252, 2 Dec 10 12:28 /dev/rbd1p2
brw-rw---- 1 root disk 252, 3 Dec 10 12:28 /dev/rbd1p3
brw-rw---- 1 root disk 251, 0 Dec 10 12:28 /dev/rbd2
brw-rw---- 1 root disk 251, 1 Dec 10 12:28 /dev/rbd2p1
brw-rw---- 1 root disk 250, 0 Dec 10 12:24 /dev/rbd3
New scheme (modprobe rbd single_major=Y):
$ ls -l /dev/rbd*
brw-rw---- 1 root disk 253, 0 Dec 10 12:30 /dev/rbd0
brw-rw---- 1 root disk 253, 256 Dec 10 12:30 /dev/rbd1
brw-rw---- 1 root disk 253, 257 Dec 10 12:30 /dev/rbd1p1
brw-rw---- 1 root disk 253, 258 Dec 10 12:30 /dev/rbd1p2
brw-rw---- 1 root disk 253, 259 Dec 10 12:30 /dev/rbd1p3
brw-rw---- 1 root disk 253, 512 Dec 10 12:30 /dev/rbd2
brw-rw---- 1 root disk 253, 513 Dec 10 12:30 /dev/rbd2p1
brw-rw---- 1 root disk 253, 768 Dec 10 12:30 /dev/rbd3
(major 253 was assigned dynamically at module load time)
The new limit is 4096 images mapped at once, and it comes from the fact
that, as before, 256 minor numbers are reserved for each mapping.
(A follow-up commit changes the number of minors reserved and the way
we deal with partitions over that number.)
If single_major is set to true, two new sysfs interfaces show up:
/sys/bus/rbd/{add,remove}_single_major. These are to be used instead
of /sys/bus/rbd/{add,remove}, which are disabled for backwards
compatibility reasons outlined above.
Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
Reviewed-by: Alex Elder <elder@linaro.org>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2013-12-13 15:28:57 +02:00
|
|
|
|
2017-11-13 10:35:40 +01:00
|
|
|
|
rbd: add support for single-major device number allocation scheme
Currently each rbd device is allocated its own major number, which
leads to a hard limit of 230-250 images mapped at once. This commit
adds support for a new single-major device number allocation scheme,
which is hidden behind a new single_major boolean module parameter and
is disabled by default for backwards compatibility reasons. (Old
userspace cannot correctly unmap images mapped under single-major
scheme and would essentially just unmap a random image, if that.)
$ rbd showmapped
id pool image snap device
0 rbd b100 - /dev/rbd0
1 rbd b101 - /dev/rbd1
2 rbd b102 - /dev/rbd2
3 rbd b103 - /dev/rbd3
Old scheme (modprobe rbd):
$ ls -l /dev/rbd*
brw-rw---- 1 root disk 253, 0 Dec 10 12:24 /dev/rbd0
brw-rw---- 1 root disk 252, 0 Dec 10 12:28 /dev/rbd1
brw-rw---- 1 root disk 252, 1 Dec 10 12:28 /dev/rbd1p1
brw-rw---- 1 root disk 252, 2 Dec 10 12:28 /dev/rbd1p2
brw-rw---- 1 root disk 252, 3 Dec 10 12:28 /dev/rbd1p3
brw-rw---- 1 root disk 251, 0 Dec 10 12:28 /dev/rbd2
brw-rw---- 1 root disk 251, 1 Dec 10 12:28 /dev/rbd2p1
brw-rw---- 1 root disk 250, 0 Dec 10 12:24 /dev/rbd3
New scheme (modprobe rbd single_major=Y):
$ ls -l /dev/rbd*
brw-rw---- 1 root disk 253, 0 Dec 10 12:30 /dev/rbd0
brw-rw---- 1 root disk 253, 256 Dec 10 12:30 /dev/rbd1
brw-rw---- 1 root disk 253, 257 Dec 10 12:30 /dev/rbd1p1
brw-rw---- 1 root disk 253, 258 Dec 10 12:30 /dev/rbd1p2
brw-rw---- 1 root disk 253, 259 Dec 10 12:30 /dev/rbd1p3
brw-rw---- 1 root disk 253, 512 Dec 10 12:30 /dev/rbd2
brw-rw---- 1 root disk 253, 513 Dec 10 12:30 /dev/rbd2p1
brw-rw---- 1 root disk 253, 768 Dec 10 12:30 /dev/rbd3
(major 253 was assigned dynamically at module load time)
The new limit is 4096 images mapped at once, and it comes from the fact
that, as before, 256 minor numbers are reserved for each mapping.
(A follow-up commit changes the number of minors reserved and the way
we deal with partitions over that number.)
If single_major is set to true, two new sysfs interfaces show up:
/sys/bus/rbd/{add,remove}_single_major. These are to be used instead
of /sys/bus/rbd/{add,remove}, which are disabled for backwards
compatibility reasons outlined above.
Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
Reviewed-by: Alex Elder <elder@linaro.org>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2013-12-13 15:28:57 +02:00
|
|
|
|
2017-11-13 10:35:40 +01:00
|
|
|
|
2018-05-24 13:38:59 -06:00
|
|
|
|
2017-11-13 10:35:40 +01:00
|
|
|
|
rbd: add support for single-major device number allocation scheme
Currently each rbd device is allocated its own major number, which
leads to a hard limit of 230-250 images mapped at once. This commit
adds support for a new single-major device number allocation scheme,
which is hidden behind a new single_major boolean module parameter and
is disabled by default for backwards compatibility reasons. (Old
userspace cannot correctly unmap images mapped under single-major
scheme and would essentially just unmap a random image, if that.)
$ rbd showmapped
id pool image snap device
0 rbd b100 - /dev/rbd0
1 rbd b101 - /dev/rbd1
2 rbd b102 - /dev/rbd2
3 rbd b103 - /dev/rbd3
Old scheme (modprobe rbd):
$ ls -l /dev/rbd*
brw-rw---- 1 root disk 253, 0 Dec 10 12:24 /dev/rbd0
brw-rw---- 1 root disk 252, 0 Dec 10 12:28 /dev/rbd1
brw-rw---- 1 root disk 252, 1 Dec 10 12:28 /dev/rbd1p1
brw-rw---- 1 root disk 252, 2 Dec 10 12:28 /dev/rbd1p2
brw-rw---- 1 root disk 252, 3 Dec 10 12:28 /dev/rbd1p3
brw-rw---- 1 root disk 251, 0 Dec 10 12:28 /dev/rbd2
brw-rw---- 1 root disk 251, 1 Dec 10 12:28 /dev/rbd2p1
brw-rw---- 1 root disk 250, 0 Dec 10 12:24 /dev/rbd3
New scheme (modprobe rbd single_major=Y):
$ ls -l /dev/rbd*
brw-rw---- 1 root disk 253, 0 Dec 10 12:30 /dev/rbd0
brw-rw---- 1 root disk 253, 256 Dec 10 12:30 /dev/rbd1
brw-rw---- 1 root disk 253, 257 Dec 10 12:30 /dev/rbd1p1
brw-rw---- 1 root disk 253, 258 Dec 10 12:30 /dev/rbd1p2
brw-rw---- 1 root disk 253, 259 Dec 10 12:30 /dev/rbd1p3
brw-rw---- 1 root disk 253, 512 Dec 10 12:30 /dev/rbd2
brw-rw---- 1 root disk 253, 513 Dec 10 12:30 /dev/rbd2p1
brw-rw---- 1 root disk 253, 768 Dec 10 12:30 /dev/rbd3
(major 253 was assigned dynamically at module load time)
The new limit is 4096 images mapped at once, and it comes from the fact
that, as before, 256 minor numbers are reserved for each mapping.
(A follow-up commit changes the number of minors reserved and the way
we deal with partitions over that number.)
If single_major is set to true, two new sysfs interfaces show up:
/sys/bus/rbd/{add,remove}_single_major. These are to be used instead
of /sys/bus/rbd/{add,remove}, which are disabled for backwards
compatibility reasons outlined above.
Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
Reviewed-by: Alex Elder <elder@linaro.org>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2013-12-13 15:28:57 +02:00
|
|
|
|
2023-03-13 19:29:05 +01:00
|
|
|
|
|
|
|
|
|
2018-12-21 08:54:38 +01:00
|
|
|
|
2023-03-13 19:29:05 +01:00
|
|
|
|
2018-12-21 08:54:38 +01:00
|
|
|
|
2023-03-13 19:29:05 +01:00
|
|
|
|
2018-12-21 08:54:38 +01:00
|
|
|
|
2015-10-11 19:38:00 +02:00
|
|
|
|
2012-01-29 13:57:44 -06:00
|
|
|
|
rbd: add support for single-major device number allocation scheme
Currently each rbd device is allocated its own major number, which
leads to a hard limit of 230-250 images mapped at once. This commit
adds support for a new single-major device number allocation scheme,
which is hidden behind a new single_major boolean module parameter and
is disabled by default for backwards compatibility reasons. (Old
userspace cannot correctly unmap images mapped under single-major
scheme and would essentially just unmap a random image, if that.)
$ rbd showmapped
id pool image snap device
0 rbd b100 - /dev/rbd0
1 rbd b101 - /dev/rbd1
2 rbd b102 - /dev/rbd2
3 rbd b103 - /dev/rbd3
Old scheme (modprobe rbd):
$ ls -l /dev/rbd*
brw-rw---- 1 root disk 253, 0 Dec 10 12:24 /dev/rbd0
brw-rw---- 1 root disk 252, 0 Dec 10 12:28 /dev/rbd1
brw-rw---- 1 root disk 252, 1 Dec 10 12:28 /dev/rbd1p1
brw-rw---- 1 root disk 252, 2 Dec 10 12:28 /dev/rbd1p2
brw-rw---- 1 root disk 252, 3 Dec 10 12:28 /dev/rbd1p3
brw-rw---- 1 root disk 251, 0 Dec 10 12:28 /dev/rbd2
brw-rw---- 1 root disk 251, 1 Dec 10 12:28 /dev/rbd2p1
brw-rw---- 1 root disk 250, 0 Dec 10 12:24 /dev/rbd3
New scheme (modprobe rbd single_major=Y):
$ ls -l /dev/rbd*
brw-rw---- 1 root disk 253, 0 Dec 10 12:30 /dev/rbd0
brw-rw---- 1 root disk 253, 256 Dec 10 12:30 /dev/rbd1
brw-rw---- 1 root disk 253, 257 Dec 10 12:30 /dev/rbd1p1
brw-rw---- 1 root disk 253, 258 Dec 10 12:30 /dev/rbd1p2
brw-rw---- 1 root disk 253, 259 Dec 10 12:30 /dev/rbd1p3
brw-rw---- 1 root disk 253, 512 Dec 10 12:30 /dev/rbd2
brw-rw---- 1 root disk 253, 513 Dec 10 12:30 /dev/rbd2p1
brw-rw---- 1 root disk 253, 768 Dec 10 12:30 /dev/rbd3
(major 253 was assigned dynamically at module load time)
The new limit is 4096 images mapped at once, and it comes from the fact
that, as before, 256 minor numbers are reserved for each mapping.
(A follow-up commit changes the number of minors reserved and the way
we deal with partitions over that number.)
If single_major is set to true, two new sysfs interfaces show up:
/sys/bus/rbd/{add,remove}_single_major. These are to be used instead
of /sys/bus/rbd/{add,remove}, which are disabled for backwards
compatibility reasons outlined above.
Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
Reviewed-by: Alex Elder <elder@linaro.org>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2013-12-13 15:28:57 +02:00
|
|
|
|
|
|
|
|
|
2013-12-16 19:26:32 +02:00
|
|
|
|
rbd: add support for single-major device number allocation scheme
Currently each rbd device is allocated its own major number, which
leads to a hard limit of 230-250 images mapped at once. This commit
adds support for a new single-major device number allocation scheme,
which is hidden behind a new single_major boolean module parameter and
is disabled by default for backwards compatibility reasons. (Old
userspace cannot correctly unmap images mapped under single-major
scheme and would essentially just unmap a random image, if that.)
$ rbd showmapped
id pool image snap device
0 rbd b100 - /dev/rbd0
1 rbd b101 - /dev/rbd1
2 rbd b102 - /dev/rbd2
3 rbd b103 - /dev/rbd3
Old scheme (modprobe rbd):
$ ls -l /dev/rbd*
brw-rw---- 1 root disk 253, 0 Dec 10 12:24 /dev/rbd0
brw-rw---- 1 root disk 252, 0 Dec 10 12:28 /dev/rbd1
brw-rw---- 1 root disk 252, 1 Dec 10 12:28 /dev/rbd1p1
brw-rw---- 1 root disk 252, 2 Dec 10 12:28 /dev/rbd1p2
brw-rw---- 1 root disk 252, 3 Dec 10 12:28 /dev/rbd1p3
brw-rw---- 1 root disk 251, 0 Dec 10 12:28 /dev/rbd2
brw-rw---- 1 root disk 251, 1 Dec 10 12:28 /dev/rbd2p1
brw-rw---- 1 root disk 250, 0 Dec 10 12:24 /dev/rbd3
New scheme (modprobe rbd single_major=Y):
$ ls -l /dev/rbd*
brw-rw---- 1 root disk 253, 0 Dec 10 12:30 /dev/rbd0
brw-rw---- 1 root disk 253, 256 Dec 10 12:30 /dev/rbd1
brw-rw---- 1 root disk 253, 257 Dec 10 12:30 /dev/rbd1p1
brw-rw---- 1 root disk 253, 258 Dec 10 12:30 /dev/rbd1p2
brw-rw---- 1 root disk 253, 259 Dec 10 12:30 /dev/rbd1p3
brw-rw---- 1 root disk 253, 512 Dec 10 12:30 /dev/rbd2
brw-rw---- 1 root disk 253, 513 Dec 10 12:30 /dev/rbd2p1
brw-rw---- 1 root disk 253, 768 Dec 10 12:30 /dev/rbd3
(major 253 was assigned dynamically at module load time)
The new limit is 4096 images mapped at once, and it comes from the fact
that, as before, 256 minor numbers are reserved for each mapping.
(A follow-up commit changes the number of minors reserved and the way
we deal with partitions over that number.)
If single_major is set to true, two new sysfs interfaces show up:
/sys/bus/rbd/{add,remove}_single_major. These are to be used instead
of /sys/bus/rbd/{add,remove}, which are disabled for backwards
compatibility reasons outlined above.
Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
Reviewed-by: Alex Elder <elder@linaro.org>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2013-12-13 15:28:57 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-12-16 19:26:32 +02:00
|
|
|
|
rbd: add support for single-major device number allocation scheme
Currently each rbd device is allocated its own major number, which
leads to a hard limit of 230-250 images mapped at once. This commit
adds support for a new single-major device number allocation scheme,
which is hidden behind a new single_major boolean module parameter and
is disabled by default for backwards compatibility reasons. (Old
userspace cannot correctly unmap images mapped under single-major
scheme and would essentially just unmap a random image, if that.)
$ rbd showmapped
id pool image snap device
0 rbd b100 - /dev/rbd0
1 rbd b101 - /dev/rbd1
2 rbd b102 - /dev/rbd2
3 rbd b103 - /dev/rbd3
Old scheme (modprobe rbd):
$ ls -l /dev/rbd*
brw-rw---- 1 root disk 253, 0 Dec 10 12:24 /dev/rbd0
brw-rw---- 1 root disk 252, 0 Dec 10 12:28 /dev/rbd1
brw-rw---- 1 root disk 252, 1 Dec 10 12:28 /dev/rbd1p1
brw-rw---- 1 root disk 252, 2 Dec 10 12:28 /dev/rbd1p2
brw-rw---- 1 root disk 252, 3 Dec 10 12:28 /dev/rbd1p3
brw-rw---- 1 root disk 251, 0 Dec 10 12:28 /dev/rbd2
brw-rw---- 1 root disk 251, 1 Dec 10 12:28 /dev/rbd2p1
brw-rw---- 1 root disk 250, 0 Dec 10 12:24 /dev/rbd3
New scheme (modprobe rbd single_major=Y):
$ ls -l /dev/rbd*
brw-rw---- 1 root disk 253, 0 Dec 10 12:30 /dev/rbd0
brw-rw---- 1 root disk 253, 256 Dec 10 12:30 /dev/rbd1
brw-rw---- 1 root disk 253, 257 Dec 10 12:30 /dev/rbd1p1
brw-rw---- 1 root disk 253, 258 Dec 10 12:30 /dev/rbd1p2
brw-rw---- 1 root disk 253, 259 Dec 10 12:30 /dev/rbd1p3
brw-rw---- 1 root disk 253, 512 Dec 10 12:30 /dev/rbd2
brw-rw---- 1 root disk 253, 513 Dec 10 12:30 /dev/rbd2p1
brw-rw---- 1 root disk 253, 768 Dec 10 12:30 /dev/rbd3
(major 253 was assigned dynamically at module load time)
The new limit is 4096 images mapped at once, and it comes from the fact
that, as before, 256 minor numbers are reserved for each mapping.
(A follow-up commit changes the number of minors reserved and the way
we deal with partitions over that number.)
If single_major is set to true, two new sysfs interfaces show up:
/sys/bus/rbd/{add,remove}_single_major. These are to be used instead
of /sys/bus/rbd/{add,remove}, which are disabled for backwards
compatibility reasons outlined above.
Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
Reviewed-by: Alex Elder <elder@linaro.org>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2013-12-13 15:28:57 +02:00
|
|
|
|
|
|
|
|
|
2019-11-07 17:16:23 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-11-07 16:22:10 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
2019-06-06 17:14:49 +02:00
|
|
|
|
|
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
2024-07-23 17:54:39 +02:00
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-03-13 19:29:05 +01:00
|
|
|
|
2017-03-02 19:56:57 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-12-21 08:54:38 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-08-23 14:24:28 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
rbd: add support for single-major device number allocation scheme
Currently each rbd device is allocated its own major number, which
leads to a hard limit of 230-250 images mapped at once. This commit
adds support for a new single-major device number allocation scheme,
which is hidden behind a new single_major boolean module parameter and
is disabled by default for backwards compatibility reasons. (Old
userspace cannot correctly unmap images mapped under single-major
scheme and would essentially just unmap a random image, if that.)
$ rbd showmapped
id pool image snap device
0 rbd b100 - /dev/rbd0
1 rbd b101 - /dev/rbd1
2 rbd b102 - /dev/rbd2
3 rbd b103 - /dev/rbd3
Old scheme (modprobe rbd):
$ ls -l /dev/rbd*
brw-rw---- 1 root disk 253, 0 Dec 10 12:24 /dev/rbd0
brw-rw---- 1 root disk 252, 0 Dec 10 12:28 /dev/rbd1
brw-rw---- 1 root disk 252, 1 Dec 10 12:28 /dev/rbd1p1
brw-rw---- 1 root disk 252, 2 Dec 10 12:28 /dev/rbd1p2
brw-rw---- 1 root disk 252, 3 Dec 10 12:28 /dev/rbd1p3
brw-rw---- 1 root disk 251, 0 Dec 10 12:28 /dev/rbd2
brw-rw---- 1 root disk 251, 1 Dec 10 12:28 /dev/rbd2p1
brw-rw---- 1 root disk 250, 0 Dec 10 12:24 /dev/rbd3
New scheme (modprobe rbd single_major=Y):
$ ls -l /dev/rbd*
brw-rw---- 1 root disk 253, 0 Dec 10 12:30 /dev/rbd0
brw-rw---- 1 root disk 253, 256 Dec 10 12:30 /dev/rbd1
brw-rw---- 1 root disk 253, 257 Dec 10 12:30 /dev/rbd1p1
brw-rw---- 1 root disk 253, 258 Dec 10 12:30 /dev/rbd1p2
brw-rw---- 1 root disk 253, 259 Dec 10 12:30 /dev/rbd1p3
brw-rw---- 1 root disk 253, 512 Dec 10 12:30 /dev/rbd2
brw-rw---- 1 root disk 253, 513 Dec 10 12:30 /dev/rbd2p1
brw-rw---- 1 root disk 253, 768 Dec 10 12:30 /dev/rbd3
(major 253 was assigned dynamically at module load time)
The new limit is 4096 images mapped at once, and it comes from the fact
that, as before, 256 minor numbers are reserved for each mapping.
(A follow-up commit changes the number of minors reserved and the way
we deal with partitions over that number.)
If single_major is set to true, two new sysfs interfaces show up:
/sys/bus/rbd/{add,remove}_single_major. These are to be used instead
of /sys/bus/rbd/{add,remove}, which are disabled for backwards
compatibility reasons outlined above.
Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
Reviewed-by: Alex Elder <elder@linaro.org>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2013-12-13 15:28:57 +02:00
|
|
|
|
|
|
|
|
|
2017-03-02 19:56:57 +01:00
|
|
|
|
2013-08-23 14:24:28 -07:00
|
|
|
|
2012-01-29 13:57:44 -06:00
|
|
|
|
2013-12-13 15:28:57 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
rbd: add support for single-major device number allocation scheme
Currently each rbd device is allocated its own major number, which
leads to a hard limit of 230-250 images mapped at once. This commit
adds support for a new single-major device number allocation scheme,
which is hidden behind a new single_major boolean module parameter and
is disabled by default for backwards compatibility reasons. (Old
userspace cannot correctly unmap images mapped under single-major
scheme and would essentially just unmap a random image, if that.)
$ rbd showmapped
id pool image snap device
0 rbd b100 - /dev/rbd0
1 rbd b101 - /dev/rbd1
2 rbd b102 - /dev/rbd2
3 rbd b103 - /dev/rbd3
Old scheme (modprobe rbd):
$ ls -l /dev/rbd*
brw-rw---- 1 root disk 253, 0 Dec 10 12:24 /dev/rbd0
brw-rw---- 1 root disk 252, 0 Dec 10 12:28 /dev/rbd1
brw-rw---- 1 root disk 252, 1 Dec 10 12:28 /dev/rbd1p1
brw-rw---- 1 root disk 252, 2 Dec 10 12:28 /dev/rbd1p2
brw-rw---- 1 root disk 252, 3 Dec 10 12:28 /dev/rbd1p3
brw-rw---- 1 root disk 251, 0 Dec 10 12:28 /dev/rbd2
brw-rw---- 1 root disk 251, 1 Dec 10 12:28 /dev/rbd2p1
brw-rw---- 1 root disk 250, 0 Dec 10 12:24 /dev/rbd3
New scheme (modprobe rbd single_major=Y):
$ ls -l /dev/rbd*
brw-rw---- 1 root disk 253, 0 Dec 10 12:30 /dev/rbd0
brw-rw---- 1 root disk 253, 256 Dec 10 12:30 /dev/rbd1
brw-rw---- 1 root disk 253, 257 Dec 10 12:30 /dev/rbd1p1
brw-rw---- 1 root disk 253, 258 Dec 10 12:30 /dev/rbd1p2
brw-rw---- 1 root disk 253, 259 Dec 10 12:30 /dev/rbd1p3
brw-rw---- 1 root disk 253, 512 Dec 10 12:30 /dev/rbd2
brw-rw---- 1 root disk 253, 513 Dec 10 12:30 /dev/rbd2p1
brw-rw---- 1 root disk 253, 768 Dec 10 12:30 /dev/rbd3
(major 253 was assigned dynamically at module load time)
The new limit is 4096 images mapped at once, and it comes from the fact
that, as before, 256 minor numbers are reserved for each mapping.
(A follow-up commit changes the number of minors reserved and the way
we deal with partitions over that number.)
If single_major is set to true, two new sysfs interfaces show up:
/sys/bus/rbd/{add,remove}_single_major. These are to be used instead
of /sys/bus/rbd/{add,remove}, which are disabled for backwards
compatibility reasons outlined above.
Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
Reviewed-by: Alex Elder <elder@linaro.org>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2013-12-13 15:28:57 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-12-13 15:28:57 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-01-29 13:57:44 -06:00
|
|
|
|
2024-02-04 12:31:42 -03:00
|
|
|
|
2012-01-29 13:57:44 -06:00
|
|
|
|
2013-08-23 14:24:28 -07:00
|
|
|
|
2012-01-29 13:57:44 -06:00
|
|
|
|
|
|
|
|
|
2026-04-24 12:39:31 +02:00
|
|
|
|
2012-01-29 13:57:44 -06:00
|
|
|
|
2012-11-01 10:17:15 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-09-06 16:00:54 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-11-19 14:51:04 -08:00
|
|
|
|
2013-04-26 15:44:36 -05:00
|
|
|
|
2013-01-24 16:13:36 -06:00
|
|
|
|
2013-04-30 00:44:33 -05:00
|
|
|
|
2023-09-19 20:41:47 +02:00
|
|
|
|
|
|
|
|
|
2013-04-30 00:44:33 -05:00
|
|
|
|
|
|
|
|
|
2013-04-30 00:44:33 -05:00
|
|
|
|
|
|
|
|
|
2019-06-05 19:25:11 +02:00
|
|
|
|
2011-03-21 15:10:11 -07:00
|
|
|
|
2019-05-11 16:21:49 +02:00
|
|
|
|
2019-05-16 15:06:56 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-03-21 15:10:11 -07:00
|
|
|
|
2023-06-08 13:02:55 +02:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2023-06-08 13:02:36 +02:00
|
|
|
|
2013-01-14 12:43:31 -06:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2013-02-05 13:23:12 -06:00
|
|
|
|
2013-01-14 12:43:31 -06:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-02-05 13:23:12 -06:00
|
|
|
|
2013-01-14 12:43:31 -06:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-11-16 09:29:16 -06:00
|
|
|
|
2012-08-10 13:12:07 -07:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-06-08 13:02:37 +02:00
|
|
|
|
2010-11-19 14:51:04 -08:00
|
|
|
|
|
|
|
|
|
2013-01-14 12:43:31 -06:00
|
|
|
|
|
|
|
|
|
2013-02-05 13:23:12 -06:00
|
|
|
|
2013-01-14 12:43:31 -06:00
|
|
|
|
2013-02-05 13:23:12 -06:00
|
|
|
|
2013-01-14 12:43:31 -06:00
|
|
|
|
2010-11-19 14:51:04 -08:00
|
|
|
|
2012-11-16 09:29:16 -06:00
|
|
|
|
2010-11-19 14:51:04 -08:00
|
|
|
|
|
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-11-19 14:51:04 -08:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-05-16 15:04:20 -05:00
|
|
|
|
2013-05-31 17:40:45 -05:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2012-08-10 13:12:07 -07:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-02-20 17:32:08 -06:00
|
|
|
|
2026-02-21 16:37:42 -08:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-03-03 18:16:07 +01:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2013-05-29 11:19:00 -05:00
|
|
|
|
2012-07-03 16:01:18 -05:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-05-29 11:19:00 -05:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2012-01-29 13:57:44 -06:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2012-01-29 13:57:44 -06:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2013-02-20 17:32:08 -06:00
|
|
|
|
2012-01-29 13:57:44 -06:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2013-05-29 11:19:00 -05:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2013-05-29 11:19:00 -05:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
|
|
|
|
|
2012-07-03 16:01:18 -05:00
|
|
|
|
|
|
|
|
|
2013-02-20 17:32:08 -06:00
|
|
|
|
|
|
|
|
|
2010-09-26 12:59:37 +04:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
|
|
|
|
|
2012-10-30 19:40:33 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2012-08-10 13:12:07 -07:00
|
|
|
|
|
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2012-08-10 13:12:07 -07:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2022-03-24 08:20:50 +01:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2012-07-03 16:01:18 -05:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
|
|
|
|
|
2012-08-10 13:12:07 -07:00
|
|
|
|
2022-03-24 08:20:50 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-10-30 19:40:33 -05:00
|
|
|
|
2022-03-24 08:20:50 +01:00
|
|
|
|
2012-08-10 13:12:07 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-03-24 08:20:50 +01:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
|
|
|
|
|
2011-03-21 15:10:11 -07:00
|
|
|
|
2015-06-22 13:24:48 +03:00
|
|
|
|
2011-03-21 15:10:11 -07:00
|
|
|
|
|
|
|
|
|
2015-06-23 16:21:19 +03:00
|
|
|
|
2019-01-30 15:14:48 +01:00
|
|
|
|
2018-03-26 10:22:55 -04:00
|
|
|
|
2011-03-21 15:10:11 -07:00
|
|
|
|
2018-07-03 15:28:43 +02:00
|
|
|
|
2020-05-29 20:51:23 +02:00
|
|
|
|
2011-03-21 15:10:11 -07:00
|
|
|
|
2012-08-10 13:12:07 -07:00
|
|
|
|
|
|
|
|
|
2016-09-20 14:23:17 +02:00
|
|
|
|
2017-04-13 12:17:39 +02:00
|
|
|
|
2018-03-23 06:14:47 +01:00
|
|
|
|
2011-03-21 15:10:11 -07:00
|
|
|
|
|
|
|
|
|
2020-05-29 20:51:23 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-09-07 07:23:15 -04:00
|
|
|
|
2019-03-25 16:38:32 +00:00
|
|
|
|
2020-05-29 20:51:23 +02:00
|
|
|
|
|
|
|
|
|
2019-03-25 16:38:32 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-01-20 14:44:42 -06:00
|
|
|
|
2015-06-23 16:21:19 +03:00
|
|
|
|
2019-01-30 15:14:48 +01:00
|
|
|
|
2018-03-26 10:22:55 -04:00
|
|
|
|
2013-01-20 14:44:42 -06:00
|
|
|
|
2016-09-20 14:23:17 +02:00
|
|
|
|
2017-04-13 12:17:39 +02:00
|
|
|
|
2018-03-23 06:14:47 +01:00
|
|
|
|
2020-05-29 20:51:23 +02:00
|
|
|
|
|
|
|
|
|
2013-01-20 14:44:42 -06:00
|
|
|
|
|
|
|
|
|
2021-10-05 18:23:27 +08:00
|
|
|
|
2019-01-30 15:14:48 +01:00
|
|
|
|
2018-03-26 10:22:55 -04:00
|
|
|
|
2013-01-20 14:44:42 -06:00
|
|
|
|
2016-09-20 14:23:17 +02:00
|
|
|
|
2017-04-13 12:17:39 +02:00
|
|
|
|
2018-03-23 06:14:47 +01:00
|
|
|
|
2013-01-20 14:44:42 -06:00
|
|
|
|
2019-03-25 16:38:32 +00:00
|
|
|
|
2018-07-03 15:28:43 +02:00
|
|
|
|
2019-03-25 16:38:32 +00:00
|
|
|
|
2018-07-03 15:28:43 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-03-13 11:21:35 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-04-01 22:22:16 +08:00
|
|
|
|
|
|
|
|
|
2019-01-29 12:46:25 +01:00
|
|
|
|
|
|
|
|
|
2014-03-13 11:21:35 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
|
|
|
|
|
2012-01-29 13:57:43 -06:00
|
|
|
|
2012-01-29 13:57:44 -06:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-02-20 17:32:08 -06:00
|
|
|
|
2012-04-04 13:35:44 -05:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2012-04-04 13:35:44 -05:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-10-25 23:34:42 -05:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2012-10-25 23:34:42 -05:00
|
|
|
|
|
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
|
|
|
|
|
2018-02-22 13:19:04 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-02-22 13:43:24 +01:00
|
|
|
|
2018-02-22 13:19:04 +01:00
|
|
|
|
2019-05-02 15:56:00 +02:00
|
|
|
|
2018-02-22 13:19:04 +01:00
|
|
|
|
2018-02-22 13:43:24 +01:00
|
|
|
|
2018-02-22 13:19:04 +01:00
|
|
|
|
2018-02-22 13:43:24 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-03-20 10:58:05 +01:00
|
|
|
|
|
|
|
|
|
2018-02-22 13:43:24 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-02-22 13:19:04 +01:00
|
|
|
|
2018-02-22 13:43:24 +01:00
|
|
|
|
2018-02-22 13:19:04 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-07-10 20:30:11 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-07-25 09:32:40 -05:00
|
|
|
|
|
|
|
|
|
2012-08-02 11:29:45 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-10-20 22:17:27 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-08-02 11:29:45 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-07-25 09:32:40 -05:00
|
|
|
|
|
|
|
|
|
2017-01-25 18:16:22 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-01-25 18:16:22 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-01-25 18:16:22 +01:00
|
|
|
|
|
|
|
|
|
2017-01-25 18:16:22 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-09-19 20:41:47 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2013-05-06 09:51:29 -05:00
|
|
|
|
|
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2023-09-19 20:41:47 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2013-05-06 09:51:29 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
rbd: fixes in rbd_header_from_disk()
This fixes a few issues in rbd_header_from_disk():
- There is a check intended to catch overflow, but it's wrong in
two ways.
- First, the type we don't want to overflow is size_t, not
unsigned int, and there is now a SIZE_MAX we can use for
use with that type.
- Second, we're allocating the snapshot ids and snapshot
image sizes separately (each has type u64; on disk they
grouped together as a rbd_image_header_ondisk structure).
So we can use the size of u64 in this overflow check.
- If there are no snapshots, then there should be no snapshot
names. Enforce this, and issue a warning if we encounter a
header with no snapshots but a non-zero snap_names_len.
- When saving the snapshot names into the header, be more direct
in defining the offset in the on-disk structure from which
they're being copied by using "snap_count" rather than "i"
in the array index.
- If an error occurs, the "snapc" and "snap_names" fields are
freed at the end of the function. Make those fields be null
pointers after they're freed, to be explicit that they are
no longer valid.
- Finally, move the definition of the local variable "i" to the
innermost scope in which it's needed.
Signed-off-by: Alex Elder <elder@inktank.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2012-07-10 20:30:10 -05:00
|
|
|
|
2013-05-06 09:51:29 -05:00
|
|
|
|
2012-08-23 23:22:06 -05:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2013-05-06 09:51:29 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-01-25 18:16:21 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-05-06 09:51:29 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-07-19 17:12:59 -05:00
|
|
|
|
2012-08-02 11:29:45 -05:00
|
|
|
|
2013-05-06 09:51:29 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2013-05-06 09:51:29 -05:00
|
|
|
|
2012-08-23 23:22:06 -05:00
|
|
|
|
|
|
|
|
|
2013-05-06 09:51:29 -05:00
|
|
|
|
2012-08-23 23:22:06 -05:00
|
|
|
|
2013-05-06 09:51:29 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-07-19 17:12:59 -05:00
|
|
|
|
2013-05-06 09:51:29 -05:00
|
|
|
|
|
|
|
|
|
2016-09-11 12:21:25 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-05-06 09:51:29 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-08-23 23:22:06 -05:00
|
|
|
|
2013-05-06 09:51:29 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-05-06 09:51:30 -05:00
|
|
|
|
2013-05-06 09:51:29 -05:00
|
|
|
|
2012-08-23 23:22:06 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-05-06 09:51:29 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2012-07-09 21:04:24 -05:00
|
|
|
|
2013-05-06 09:51:29 -05:00
|
|
|
|
2012-07-19 17:12:59 -05:00
|
|
|
|
2013-05-06 09:51:29 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-08-23 23:22:06 -05:00
|
|
|
|
2012-08-31 17:29:51 -05:00
|
|
|
|
2013-05-06 09:51:29 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-04-26 09:43:47 -05:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2013-05-06 09:51:29 -05:00
|
|
|
|
|
|
|
|
|
2012-07-19 17:12:59 -05:00
|
|
|
|
2013-05-06 09:51:29 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
rbd: fixes in rbd_header_from_disk()
This fixes a few issues in rbd_header_from_disk():
- There is a check intended to catch overflow, but it's wrong in
two ways.
- First, the type we don't want to overflow is size_t, not
unsigned int, and there is now a SIZE_MAX we can use for
use with that type.
- Second, we're allocating the snapshot ids and snapshot
image sizes separately (each has type u64; on disk they
grouped together as a rbd_image_header_ondisk structure).
So we can use the size of u64 in this overflow check.
- If there are no snapshots, then there should be no snapshot
names. Enforce this, and issue a warning if we encounter a
header with no snapshots but a non-zero snap_names_len.
- When saving the snapshot names into the header, be more direct
in defining the offset in the on-disk structure from which
they're being copied by using "snap_count" rather than "i"
in the array index.
- If an error occurs, the "snapc" and "snap_names" fields are
freed at the end of the function. Make those fields be null
pointers after they're freed, to be explicit that they are
no longer valid.
- Finally, move the definition of the local variable "i" to the
innermost scope in which it's needed.
Signed-off-by: Alex Elder <elder@inktank.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2012-07-10 20:30:10 -05:00
|
|
|
|
2013-05-06 09:51:29 -05:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
|
|
|
|
|
2013-04-30 00:44:33 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-05-01 12:43:03 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-04-30 00:44:33 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-05-01 12:43:03 -05:00
|
|
|
|
2013-04-30 00:44:33 -05:00
|
|
|
|
2013-05-01 12:43:03 -05:00
|
|
|
|
|
|
|
|
|
2013-04-30 00:44:33 -05:00
|
|
|
|
2013-05-01 12:43:03 -05:00
|
|
|
|
2013-04-30 00:44:33 -05:00
|
|
|
|
|
|
|
|
|
2013-04-30 00:44:33 -05:00
|
|
|
|
|
|
|
|
|
2013-04-30 00:44:33 -05:00
|
|
|
|
|
|
|
|
|
2013-09-04 17:57:31 -07:00
|
|
|
|
2013-04-30 00:44:33 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-09-04 17:57:31 -07:00
|
|
|
|
2013-04-30 00:44:33 -05:00
|
|
|
|
2013-09-04 17:57:31 -07:00
|
|
|
|
|
|
|
|
|
2013-04-30 00:44:33 -05:00
|
|
|
|
|
|
|
|
|
2012-10-30 19:40:33 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-04-30 00:44:33 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-10-30 19:40:33 -05:00
|
|
|
|
2013-04-30 00:44:33 -05:00
|
|
|
|
2012-10-30 19:40:33 -05:00
|
|
|
|
|
|
|
|
|
2013-04-30 00:44:33 -05:00
|
|
|
|
|
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2013-04-30 00:44:33 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-02-07 12:03:36 -06:00
|
|
|
|
2013-04-30 00:44:33 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-02-07 12:03:36 -06:00
|
|
|
|
2013-04-30 00:44:33 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-04-27 09:59:30 -05:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2013-05-06 07:40:30 -05:00
|
|
|
|
2013-04-30 00:44:33 -05:00
|
|
|
|
|
|
|
|
|
2013-04-25 23:15:08 -05:00
|
|
|
|
2013-04-30 00:44:33 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-04-25 23:15:08 -05:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
|
|
|
|
|
2013-04-27 09:59:30 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-04-28 23:32:34 -05:00
|
|
|
|
|
|
|
|
|
2018-01-20 10:30:10 +01:00
|
|
|
|
2013-04-19 15:34:50 -05:00
|
|
|
|
2018-01-20 10:30:10 +01:00
|
|
|
|
2013-04-19 15:34:50 -05:00
|
|
|
|
2018-01-20 10:30:10 +01:00
|
|
|
|
|
|
|
|
|
2021-07-27 07:56:37 +02:00
|
|
|
|
2018-01-20 10:30:10 +01:00
|
|
|
|
2013-04-19 15:34:50 -05:00
|
|
|
|
|
|
|
|
|
2018-01-20 10:30:11 +01:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2018-01-20 10:30:11 +01:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2018-01-20 10:30:11 +01:00
|
|
|
|
|
|
|
|
|
2021-07-27 07:56:37 +02:00
|
|
|
|
2018-01-20 10:30:11 +01:00
|
|
|
|
rbd: simplify rbd_rq_fn()
When processing a request, rbd_rq_fn() makes clones of the bio's in
the request's bio chain and submits the results to osd's to be
satisfied. If a request bio straddles the boundary between objects
backing the rbd image, it must be represented by two cloned bio's,
one for the first part (at the end of one object) and one for the
second (at the beginning of the next object).
This has been handled by a function bio_chain_clone(), which
includes an interface only a mother could love, and which has
been found to have other problems.
This patch defines two new fairly generic bio functions (one which
replaces bio_chain_clone()) to help out the situation, and then
revises rbd_rq_fn() to make use of them.
First, bio_clone_range() clones a portion of a single bio, starting
at a given offset within the bio and including only as many bytes
as requested. As a convenience, a request to clone the entire bio
is passed directly to bio_clone().
Second, bio_chain_clone_range() performs a similar function,
producing a chain of cloned bio's covering a sub-range of the
source chain. No bio_pair structures are used, and if successful
the result will represent exactly the specified range.
Using bio_chain_clone_range() makes bio_rq_fn() a little easier
to understand, because it avoids the need to pass very much
state information between consecutive calls. By avoiding the need
to track a bio_pair structure, it also eliminates the problem
described here: http://tracker.newdream.net/issues/2933
Note that a block request (and therefore the complete length of
a bio chain processed in rbd_rq_fn()) is an unsigned int, while
the result of rbd_segment_length() is u64. This change makes
this range trunctation explicit, and trips a bug if the the
segment boundary is too far off.
Signed-off-by: Alex Elder <elder@inktank.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2012-10-20 22:17:27 -05:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
rbd: simplify rbd_rq_fn()
When processing a request, rbd_rq_fn() makes clones of the bio's in
the request's bio chain and submits the results to osd's to be
satisfied. If a request bio straddles the boundary between objects
backing the rbd image, it must be represented by two cloned bio's,
one for the first part (at the end of one object) and one for the
second (at the beginning of the next object).
This has been handled by a function bio_chain_clone(), which
includes an interface only a mother could love, and which has
been found to have other problems.
This patch defines two new fairly generic bio functions (one which
replaces bio_chain_clone()) to help out the situation, and then
revises rbd_rq_fn() to make use of them.
First, bio_clone_range() clones a portion of a single bio, starting
at a given offset within the bio and including only as many bytes
as requested. As a convenience, a request to clone the entire bio
is passed directly to bio_clone().
Second, bio_chain_clone_range() performs a similar function,
producing a chain of cloned bio's covering a sub-range of the
source chain. No bio_pair structures are used, and if successful
the result will represent exactly the specified range.
Using bio_chain_clone_range() makes bio_rq_fn() a little easier
to understand, because it avoids the need to pass very much
state information between consecutive calls. By avoiding the need
to track a bio_pair structure, it also eliminates the problem
described here: http://tracker.newdream.net/issues/2933
Note that a block request (and therefore the complete length of
a bio chain processed in rbd_rq_fn()) is an unsigned int, while
the result of rbd_segment_length() is u64. This change makes
this range trunctation explicit, and trips a bug if the the
segment boundary is too far off.
Signed-off-by: Alex Elder <elder@inktank.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2012-10-20 22:17:27 -05:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
2018-02-06 19:26:35 +01:00
|
|
|
|
rbd: simplify rbd_rq_fn()
When processing a request, rbd_rq_fn() makes clones of the bio's in
the request's bio chain and submits the results to osd's to be
satisfied. If a request bio straddles the boundary between objects
backing the rbd image, it must be represented by two cloned bio's,
one for the first part (at the end of one object) and one for the
second (at the beginning of the next object).
This has been handled by a function bio_chain_clone(), which
includes an interface only a mother could love, and which has
been found to have other problems.
This patch defines two new fairly generic bio functions (one which
replaces bio_chain_clone()) to help out the situation, and then
revises rbd_rq_fn() to make use of them.
First, bio_clone_range() clones a portion of a single bio, starting
at a given offset within the bio and including only as many bytes
as requested. As a convenience, a request to clone the entire bio
is passed directly to bio_clone().
Second, bio_chain_clone_range() performs a similar function,
producing a chain of cloned bio's covering a sub-range of the
source chain. No bio_pair structures are used, and if successful
the result will represent exactly the specified range.
Using bio_chain_clone_range() makes bio_rq_fn() a little easier
to understand, because it avoids the need to pass very much
state information between consecutive calls. By avoiding the need
to track a bio_pair structure, it also eliminates the problem
described here: http://tracker.newdream.net/issues/2933
Note that a block request (and therefore the complete length of
a bio chain processed in rbd_rq_fn()) is an unsigned int, while
the result of rbd_segment_length() is u64. This change makes
this range trunctation explicit, and trips a bug if the the
segment boundary is too far off.
Signed-off-by: Alex Elder <elder@inktank.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2012-10-20 22:17:27 -05:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
rbd: simplify rbd_rq_fn()
When processing a request, rbd_rq_fn() makes clones of the bio's in
the request's bio chain and submits the results to osd's to be
satisfied. If a request bio straddles the boundary between objects
backing the rbd image, it must be represented by two cloned bio's,
one for the first part (at the end of one object) and one for the
second (at the beginning of the next object).
This has been handled by a function bio_chain_clone(), which
includes an interface only a mother could love, and which has
been found to have other problems.
This patch defines two new fairly generic bio functions (one which
replaces bio_chain_clone()) to help out the situation, and then
revises rbd_rq_fn() to make use of them.
First, bio_clone_range() clones a portion of a single bio, starting
at a given offset within the bio and including only as many bytes
as requested. As a convenience, a request to clone the entire bio
is passed directly to bio_clone().
Second, bio_chain_clone_range() performs a similar function,
producing a chain of cloned bio's covering a sub-range of the
source chain. No bio_pair structures are used, and if successful
the result will represent exactly the specified range.
Using bio_chain_clone_range() makes bio_rq_fn() a little easier
to understand, because it avoids the need to pass very much
state information between consecutive calls. By avoiding the need
to track a bio_pair structure, it also eliminates the problem
described here: http://tracker.newdream.net/issues/2933
Note that a block request (and therefore the complete length of
a bio chain processed in rbd_rq_fn()) is an unsigned int, while
the result of rbd_segment_length() is u64. This change makes
this range trunctation explicit, and trips a bug if the the
segment boundary is too far off.
Signed-off-by: Alex Elder <elder@inktank.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2012-10-20 22:17:27 -05:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
rbd: simplify rbd_rq_fn()
When processing a request, rbd_rq_fn() makes clones of the bio's in
the request's bio chain and submits the results to osd's to be
satisfied. If a request bio straddles the boundary between objects
backing the rbd image, it must be represented by two cloned bio's,
one for the first part (at the end of one object) and one for the
second (at the beginning of the next object).
This has been handled by a function bio_chain_clone(), which
includes an interface only a mother could love, and which has
been found to have other problems.
This patch defines two new fairly generic bio functions (one which
replaces bio_chain_clone()) to help out the situation, and then
revises rbd_rq_fn() to make use of them.
First, bio_clone_range() clones a portion of a single bio, starting
at a given offset within the bio and including only as many bytes
as requested. As a convenience, a request to clone the entire bio
is passed directly to bio_clone().
Second, bio_chain_clone_range() performs a similar function,
producing a chain of cloned bio's covering a sub-range of the
source chain. No bio_pair structures are used, and if successful
the result will represent exactly the specified range.
Using bio_chain_clone_range() makes bio_rq_fn() a little easier
to understand, because it avoids the need to pass very much
state information between consecutive calls. By avoiding the need
to track a bio_pair structure, it also eliminates the problem
described here: http://tracker.newdream.net/issues/2933
Note that a block request (and therefore the complete length of
a bio chain processed in rbd_rq_fn()) is an unsigned int, while
the result of rbd_segment_length() is u64. This change makes
this range trunctation explicit, and trips a bug if the the
segment boundary is too far off.
Signed-off-by: Alex Elder <elder@inktank.com>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2012-10-20 22:17:27 -05:00
|
|
|
|
2019-05-11 16:21:49 +02:00
|
|
|
|
|
|
|
|
|
2018-02-01 11:50:47 +01:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-02-06 19:26:35 +01:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-03-22 17:53:56 +01:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2012-11-22 00:00:08 -06:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-02-20 17:32:08 -06:00
|
|
|
|
2016-11-14 17:29:48 +01:00
|
|
|
|
2012-11-22 00:00:08 -06:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-01-25 17:08:55 -06:00
|
|
|
|
|
|
|
|
|
2013-04-15 14:50:37 -05:00
|
|
|
|
2012-11-22 00:00:08 -06:00
|
|
|
|
2018-02-01 11:50:47 +01:00
|
|
|
|
2012-11-22 00:00:08 -06:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-02-01 11:50:47 +01:00
|
|
|
|
2018-02-02 15:23:22 +01:00
|
|
|
|
2012-11-22 00:00:08 -06:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-12 18:33:31 +02:00
|
|
|
|
2012-11-22 00:00:08 -06:00
|
|
|
|
2019-06-12 18:33:31 +02:00
|
|
|
|
2016-09-12 18:59:42 +02:00
|
|
|
|
2019-06-12 18:33:31 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-06-30 16:21:50 -04:00
|
|
|
|
2012-11-22 00:00:08 -06:00
|
|
|
|
|
|
|
|
|
2013-02-08 09:55:49 -06:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-01-24 16:13:36 -06:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
2014-04-04 17:32:15 -07:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
2018-02-02 15:23:22 +01:00
|
|
|
|
|
|
|
|
|
2014-04-04 17:32:15 -07:00
|
|
|
|
|
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
2013-03-27 09:16:30 -05:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
2013-04-19 15:34:50 -05:00
|
|
|
|
2018-02-02 15:23:22 +01:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-02-25 12:37:50 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-06-05 16:33:35 +02:00
|
|
|
|
2019-02-25 12:37:50 +01:00
|
|
|
|
2023-06-05 16:33:35 +02:00
|
|
|
|
|
|
|
|
|
2023-06-05 16:33:35 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-02-25 12:37:50 +01:00
|
|
|
|
2023-06-05 16:33:35 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-02-25 12:37:50 +01:00
|
|
|
|
|
|
|
|
|
2018-02-06 19:26:33 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
2018-01-30 17:52:10 +01:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-01-29 12:46:25 +01:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
2018-04-04 14:53:39 +02:00
|
|
|
|
2013-03-27 09:16:30 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-04-28 16:07:24 +02:00
|
|
|
|
2012-11-22 00:00:08 -06:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
2019-05-11 16:21:49 +02:00
|
|
|
|
2012-11-22 00:00:08 -06:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
2012-11-22 00:00:08 -06:00
|
|
|
|
2019-05-11 16:21:49 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
2019-05-11 16:21:49 +02:00
|
|
|
|
2012-11-22 00:00:08 -06:00
|
|
|
|
2019-05-11 16:21:49 +02:00
|
|
|
|
2012-11-22 00:00:08 -06:00
|
|
|
|
|
|
|
|
|
2019-05-27 11:41:36 +02:00
|
|
|
|
2013-04-03 21:32:51 -05:00
|
|
|
|
2019-05-27 11:41:36 +02:00
|
|
|
|
2020-06-04 11:12:34 +02:00
|
|
|
|
|
|
|
|
|
2013-04-03 21:32:51 -05:00
|
|
|
|
2020-06-04 11:12:34 +02:00
|
|
|
|
2016-09-15 17:56:39 +02:00
|
|
|
|
2013-04-19 15:34:50 -05:00
|
|
|
|
|
|
|
|
|
2019-05-27 11:41:36 +02:00
|
|
|
|
2013-04-19 15:34:50 -05:00
|
|
|
|
2019-05-27 11:41:36 +02:00
|
|
|
|
2013-04-19 15:34:50 -05:00
|
|
|
|
2018-01-30 17:52:10 +01:00
|
|
|
|
2018-07-13 22:18:37 +02:00
|
|
|
|
2018-02-02 15:23:22 +01:00
|
|
|
|
2013-04-03 21:32:51 -05:00
|
|
|
|
|
|
|
|
|
2017-01-25 18:16:23 +01:00
|
|
|
|
2019-05-27 11:41:36 +02:00
|
|
|
|
|
|
|
|
|
2017-01-25 18:16:23 +01:00
|
|
|
|
2019-02-25 11:42:26 +01:00
|
|
|
|
2017-01-25 18:16:23 +01:00
|
|
|
|
|
|
|
|
|
2017-01-25 18:16:23 +01:00
|
|
|
|
|
|
|
|
|
2019-05-27 11:41:36 +02:00
|
|
|
|
2017-01-25 18:16:23 +01:00
|
|
|
|
2019-02-25 11:42:26 +01:00
|
|
|
|
2017-01-25 18:16:23 +01:00
|
|
|
|
2019-05-27 11:41:36 +02:00
|
|
|
|
2017-01-25 18:16:23 +01:00
|
|
|
|
2019-05-27 11:41:36 +02:00
|
|
|
|
2017-01-25 18:16:23 +01:00
|
|
|
|
2018-01-30 17:52:10 +01:00
|
|
|
|
2017-01-25 18:16:23 +01:00
|
|
|
|
2018-07-03 15:28:43 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-01-25 18:16:23 +01:00
|
|
|
|
2018-07-03 15:28:43 +02:00
|
|
|
|
2019-05-27 11:41:36 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-01-25 18:16:23 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-02-25 11:42:26 +01:00
|
|
|
|
2019-05-27 11:41:36 +02:00
|
|
|
|
2019-02-25 11:42:26 +01:00
|
|
|
|
2023-06-05 16:33:35 +02:00
|
|
|
|
2019-05-27 11:41:36 +02:00
|
|
|
|
|
|
|
|
|
2012-11-22 00:00:08 -06:00
|
|
|
|
|
|
|
|
|
2018-02-01 11:50:47 +01:00
|
|
|
|
2012-11-22 00:00:08 -06:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-06-24 17:24:33 +03:00
|
|
|
|
2017-01-25 18:16:23 +01:00
|
|
|
|
2013-05-01 12:43:03 -05:00
|
|
|
|
|
|
|
|
|
2018-02-02 15:23:22 +01:00
|
|
|
|
2019-05-27 11:41:36 +02:00
|
|
|
|
2019-05-14 21:06:07 +02:00
|
|
|
|
2012-11-22 00:00:08 -06:00
|
|
|
|
|
|
|
|
|
2017-01-25 18:16:22 +01:00
|
|
|
|
2012-11-22 00:00:08 -06:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-27 11:41:36 +02:00
|
|
|
|
2018-01-20 10:30:11 +01:00
|
|
|
|
2012-11-22 00:00:08 -06:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-02-20 17:32:08 -06:00
|
|
|
|
|
|
|
|
|
2019-05-27 11:41:36 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-11-22 00:00:08 -06:00
|
|
|
|
2018-02-01 11:50:47 +01:00
|
|
|
|
2013-01-18 12:31:10 -06:00
|
|
|
|
2012-11-22 00:00:08 -06:00
|
|
|
|
2018-01-20 10:30:11 +01:00
|
|
|
|
2018-01-20 10:30:10 +01:00
|
|
|
|
2018-02-06 19:26:35 +01:00
|
|
|
|
|
|
|
|
|
2013-01-17 12:25:27 -06:00
|
|
|
|
2018-01-20 10:30:11 +01:00
|
|
|
|
2019-03-22 17:53:56 +01:00
|
|
|
|
2012-11-22 00:00:08 -06:00
|
|
|
|
|
|
|
|
|
2018-02-06 19:26:33 +01:00
|
|
|
|
2018-01-20 10:30:11 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-11-22 00:00:08 -06:00
|
|
|
|
|
|
|
|
|
2013-05-01 12:43:03 -05:00
|
|
|
|
2012-11-22 00:00:08 -06:00
|
|
|
|
|
|
|
|
|
2013-05-08 22:50:04 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-05-08 22:50:04 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-07-11 12:11:20 +04:00
|
|
|
|
2013-05-08 22:50:04 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-01-19 18:13:43 +03:00
|
|
|
|
2013-05-08 22:50:04 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-01-19 18:13:43 +03:00
|
|
|
|
|
|
|
|
|
2013-05-08 22:50:04 -05:00
|
|
|
|
|
|
|
|
|
2014-07-11 12:11:20 +04:00
|
|
|
|
2013-05-08 22:50:04 -05:00
|
|
|
|
2015-01-19 18:13:43 +03:00
|
|
|
|
2013-05-08 22:50:04 -05:00
|
|
|
|
|
|
|
|
|
2020-02-12 15:23:58 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-11-22 00:00:08 -06:00
|
|
|
|
2020-02-12 15:23:58 +01:00
|
|
|
|
2012-11-22 00:00:08 -06:00
|
|
|
|
|
|
|
|
|
2018-01-30 17:52:10 +01:00
|
|
|
|
2018-01-22 16:03:06 +01:00
|
|
|
|
2019-05-30 16:07:48 +02:00
|
|
|
|
2018-02-02 15:23:22 +01:00
|
|
|
|
2019-05-16 15:06:56 +02:00
|
|
|
|
2012-11-22 00:00:08 -06:00
|
|
|
|
|
|
|
|
|
2023-06-05 16:33:35 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-02-12 15:08:39 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-06-05 16:33:35 +02:00
|
|
|
|
2020-02-12 15:08:39 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-01-31 11:37:36 +01:00
|
|
|
|
2012-11-22 00:00:08 -06:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-02-20 17:32:08 -06:00
|
|
|
|
|
|
|
|
|
2019-05-30 16:07:48 +02:00
|
|
|
|
2012-11-22 00:00:08 -06:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-02-12 14:34:03 +01:00
|
|
|
|
2013-05-08 22:50:04 -05:00
|
|
|
|
|
|
|
|
|
2018-01-30 17:52:10 +01:00
|
|
|
|
2013-04-30 00:44:32 -05:00
|
|
|
|
2012-11-22 00:00:08 -06:00
|
|
|
|
2020-02-12 15:23:58 +01:00
|
|
|
|
|
|
|
|
|
2012-11-22 00:00:08 -06:00
|
|
|
|
|
|
|
|
|
2019-06-05 19:25:11 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-11-12 19:41:48 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-05 19:25:11 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
treewide: Remove uninitialized_var() usage
Using uninitialized_var() is dangerous as it papers over real bugs[1]
(or can in the future), and suppresses unrelated compiler warnings
(e.g. "unused variable"). If the compiler thinks it is uninitialized,
either simply initialize the variable or make compiler changes.
In preparation for removing[2] the[3] macro[4], remove all remaining
needless uses with the following script:
git grep '\buninitialized_var\b' | cut -d: -f1 | sort -u | \
xargs perl -pi -e \
's/\buninitialized_var\(([^\)]+)\)/\1/g;
s:\s*/\* (GCC be quiet|to make compiler happy) \*/$::g;'
drivers/video/fbdev/riva/riva_hw.c was manually tweaked to avoid
pathological white-space.
No outstanding warnings were found building allmodconfig with GCC 9.3.0
for x86_64, i386, arm64, arm, powerpc, powerpc64le, s390x, mips, sparc64,
alpha, and m68k.
[1] https://lore.kernel.org/lkml/20200603174714.192027-1-glider@google.com/
[2] https://lore.kernel.org/lkml/CA+55aFw+Vbj0i=1TGqCR5vQkCzWJ0QxK6CernOU6eedsudAixw@mail.gmail.com/
[3] https://lore.kernel.org/lkml/CA+55aFwgbgqhbp1fkxvRKEpzyR5J8n1vKT1VZdz9knmPuXhOeg@mail.gmail.com/
[4] https://lore.kernel.org/lkml/CA+55aFz2500WfbKXAx8s67wrm9=yVJu65TpLgN_ybYNv0VEOKA@mail.gmail.com/
Reviewed-by: Leon Romanovsky <leonro@mellanox.com> # drivers/infiniband and mlx4/mlx5
Acked-by: Jason Gunthorpe <jgg@mellanox.com> # IB
Acked-by: Kalle Valo <kvalo@codeaurora.org> # wireless drivers
Reviewed-by: Chao Yu <yuchao0@huawei.com> # erofs
Signed-off-by: Kees Cook <keescook@chromium.org>
2020-06-03 13:09:38 -07:00
|
|
|
|
2019-06-05 19:25:11 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2026-07-09 13:26:20 +02:00
|
|
|
|
2019-06-05 19:25:11 +02:00
|
|
|
|
|
|
|
|
|
2026-07-09 13:26:20 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-05 19:25:11 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-06-30 16:21:50 -04:00
|
|
|
|
2019-06-05 19:25:11 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-02-06 19:26:33 +01:00
|
|
|
|
|
|
|
|
|
2013-05-08 22:50:04 -05:00
|
|
|
|
2018-02-06 19:26:33 +01:00
|
|
|
|
2013-05-08 22:50:04 -05:00
|
|
|
|
2018-02-06 19:26:33 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-05-08 22:50:04 -05:00
|
|
|
|
2018-02-06 19:26:33 +01:00
|
|
|
|
|
|
|
|
|
2013-05-08 22:50:04 -05:00
|
|
|
|
2018-02-06 19:26:33 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-02-08 09:55:49 -06:00
|
|
|
|
|
|
|
|
|
2018-02-06 19:26:33 +01:00
|
|
|
|
2013-04-05 01:27:12 -05:00
|
|
|
|
|
|
|
|
|
2014-04-04 17:32:15 -07:00
|
|
|
|
2018-02-06 19:26:33 +01:00
|
|
|
|
|
|
|
|
|
2014-04-04 17:32:15 -07:00
|
|
|
|
2018-02-06 19:26:33 +01:00
|
|
|
|
|
|
|
|
|
2014-04-04 17:32:15 -07:00
|
|
|
|
2018-02-06 19:26:33 +01:00
|
|
|
|
2013-02-11 12:33:24 -06:00
|
|
|
|
|
|
|
|
|
2018-02-06 19:26:33 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-27 11:41:36 +02:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
2019-05-27 11:41:36 +02:00
|
|
|
|
|
|
|
|
|
2018-02-01 11:50:47 +01:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
2019-05-27 11:41:36 +02:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
2018-02-02 15:23:22 +01:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
2018-02-06 19:26:35 +01:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
2018-02-02 15:23:22 +01:00
|
|
|
|
2018-02-06 19:26:35 +01:00
|
|
|
|
2019-05-27 11:41:36 +02:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-03-22 17:53:56 +01:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-27 11:41:36 +02:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
2016-09-15 17:53:32 +02:00
|
|
|
|
2013-02-11 12:33:24 -06:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-02-11 12:33:24 -06:00
|
|
|
|
2019-05-27 11:41:36 +02:00
|
|
|
|
|
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
2016-09-12 18:59:42 +02:00
|
|
|
|
2013-02-11 12:33:24 -06:00
|
|
|
|
|
|
|
|
|
2019-05-29 16:53:14 +02:00
|
|
|
|
|
|
|
|
|
2019-02-25 12:37:50 +01:00
|
|
|
|
2019-05-29 16:53:14 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-02-25 12:37:50 +01:00
|
|
|
|
|
|
|
|
|
2019-05-31 15:11:26 +02:00
|
|
|
|
2013-04-19 15:34:50 -05:00
|
|
|
|
2019-05-31 15:11:26 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-27 11:41:36 +02:00
|
|
|
|
|
|
|
|
|
2013-04-19 15:34:50 -05:00
|
|
|
|
2019-05-27 11:41:36 +02:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
2013-04-19 15:34:50 -05:00
|
|
|
|
2019-06-19 15:45:27 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-05-29 20:31:37 +02:00
|
|
|
|
2020-05-29 20:51:23 +02:00
|
|
|
|
2019-06-19 15:45:27 +02:00
|
|
|
|
2013-04-19 15:34:50 -05:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-09-12 16:02:01 +04:00
|
|
|
|
2019-05-27 11:41:36 +02:00
|
|
|
|
2018-02-02 15:23:22 +01:00
|
|
|
|
2019-05-27 11:41:36 +02:00
|
|
|
|
2014-09-12 16:02:01 +04:00
|
|
|
|
|
|
|
|
|
2019-05-31 15:11:26 +02:00
|
|
|
|
2014-09-12 16:02:01 +04:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
2016-09-12 14:44:45 +02:00
|
|
|
|
2018-02-06 19:26:33 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-14 21:06:07 +02:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-01-29 12:46:25 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-29 17:31:37 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-31 15:11:26 +02:00
|
|
|
|
2019-01-29 12:46:25 +01:00
|
|
|
|
2019-01-30 15:14:48 +01:00
|
|
|
|
2019-05-29 17:31:37 +02:00
|
|
|
|
2019-01-29 12:46:25 +01:00
|
|
|
|
|
|
|
|
|
2019-01-30 15:14:48 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-29 17:31:37 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-01-30 15:14:48 +01:00
|
|
|
|
|
|
|
|
|
2019-05-29 17:31:37 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-01-30 15:14:48 +01:00
|
|
|
|
|
|
|
|
|
2019-01-29 12:46:25 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-05 19:25:11 +02:00
|
|
|
|
2019-05-14 20:45:38 +02:00
|
|
|
|
|
|
|
|
|
2019-01-29 12:46:25 +01:00
|
|
|
|
2019-05-14 21:06:07 +02:00
|
|
|
|
2019-01-29 12:46:25 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-27 11:41:36 +02:00
|
|
|
|
|
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
2019-05-27 11:41:36 +02:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-02-06 19:26:33 +01:00
|
|
|
|
2019-05-14 20:45:38 +02:00
|
|
|
|
2019-05-27 11:41:36 +02:00
|
|
|
|
2019-02-28 15:51:39 +01:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
2019-05-14 20:45:38 +02:00
|
|
|
|
2019-05-27 11:41:36 +02:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-01-29 12:46:25 +01:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-27 11:41:36 +02:00
|
|
|
|
2018-02-02 15:23:22 +01:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-31 15:11:26 +02:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-02-06 19:26:33 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-14 20:45:38 +02:00
|
|
|
|
2019-06-05 19:25:11 +02:00
|
|
|
|
2019-05-14 20:45:38 +02:00
|
|
|
|
|
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
2019-05-14 21:06:07 +02:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-12 18:33:31 +02:00
|
|
|
|
|
|
|
|
|
2019-06-19 15:45:27 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-12 18:33:31 +02:00
|
|
|
|
2019-06-19 15:45:27 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-12 18:33:31 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
2019-06-12 18:33:31 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-01-30 15:14:48 +01:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
2019-01-30 15:14:48 +01:00
|
|
|
|
2018-01-30 17:52:10 +01:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
2019-05-31 15:11:26 +02:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
2019-05-31 15:11:26 +02:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
2019-05-31 15:11:26 +02:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
2019-01-29 12:46:25 +01:00
|
|
|
|
2019-05-31 15:11:26 +02:00
|
|
|
|
2019-01-29 12:46:25 +01:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
2019-03-22 17:53:56 +01:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
2019-01-30 15:14:48 +01:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
2019-01-30 15:14:48 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
2019-05-16 15:06:56 +02:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-02-06 19:26:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-02-06 19:26:35 +01:00
|
|
|
|
|
|
|
|
|
2018-02-06 19:26:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-02-06 19:26:35 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-02-06 19:26:34 +01:00
|
|
|
|
2018-02-06 19:26:35 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-02-06 19:26:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-02-06 19:26:35 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
treewide: Replace kmalloc with kmalloc_obj for non-scalar types
This is the result of running the Coccinelle script from
scripts/coccinelle/api/kmalloc_objs.cocci. The script is designed to
avoid scalar types (which need careful case-by-case checking), and
instead replace kmalloc-family calls that allocate struct or union
object instances:
Single allocations: kmalloc(sizeof(TYPE), ...)
are replaced with: kmalloc_obj(TYPE, ...)
Array allocations: kmalloc_array(COUNT, sizeof(TYPE), ...)
are replaced with: kmalloc_objs(TYPE, COUNT, ...)
Flex array allocations: kmalloc(struct_size(PTR, FAM, COUNT), ...)
are replaced with: kmalloc_flex(*PTR, FAM, COUNT, ...)
(where TYPE may also be *VAR)
The resulting allocations no longer return "void *", instead returning
"TYPE *".
Signed-off-by: Kees Cook <kees@kernel.org>
2026-02-20 23:49:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-02-06 19:26:35 +01:00
|
|
|
|
|
|
|
|
|
2013-04-19 15:34:50 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-02-06 19:26:35 +01:00
|
|
|
|
|
|
|
|
|
2013-04-19 15:34:50 -05:00
|
|
|
|
2018-02-06 19:26:35 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-04-19 15:34:50 -05:00
|
|
|
|
2018-02-06 19:26:35 +01:00
|
|
|
|
2013-04-19 15:34:50 -05:00
|
|
|
|
|
|
|
|
|
2018-02-06 19:26:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-01-07 22:01:04 +01:00
|
|
|
|
2018-02-06 19:26:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-02-06 19:26:35 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-02-06 19:26:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-02-06 19:26:35 +01:00
|
|
|
|
|
|
|
|
|
2018-02-06 19:26:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-02-06 19:26:35 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-02-06 19:26:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-02-06 19:26:35 +01:00
|
|
|
|
|
|
|
|
|
2018-02-06 19:26:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-16 15:06:56 +02:00
|
|
|
|
2012-11-22 00:00:08 -06:00
|
|
|
|
2019-05-16 15:06:56 +02:00
|
|
|
|
|
|
|
|
|
2012-11-22 00:00:08 -06:00
|
|
|
|
2019-05-16 15:06:56 +02:00
|
|
|
|
|
|
|
|
|
2012-11-22 00:00:08 -06:00
|
|
|
|
2019-05-16 15:06:56 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-11-22 00:00:08 -06:00
|
|
|
|
|
|
|
|
|
2019-06-05 19:25:11 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-14 21:06:07 +02:00
|
|
|
|
|
|
|
|
|
2019-06-12 18:33:31 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-14 21:06:07 +02:00
|
|
|
|
2012-11-22 00:00:08 -06:00
|
|
|
|
2013-01-24 16:13:36 -06:00
|
|
|
|
2018-02-06 19:26:33 +01:00
|
|
|
|
2013-01-24 16:13:36 -06:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
2020-02-12 15:08:39 +01:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
2013-01-24 16:13:36 -06:00
|
|
|
|
2020-02-12 15:23:58 +01:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
2013-01-24 16:13:36 -06:00
|
|
|
|
2020-02-12 15:23:58 +01:00
|
|
|
|
2018-02-06 19:26:35 +01:00
|
|
|
|
|
|
|
|
|
2013-05-06 17:40:33 -05:00
|
|
|
|
2020-02-12 15:08:39 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-08-30 17:31:06 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
2018-02-01 11:50:47 +01:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
2018-02-06 19:26:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
2018-02-06 19:26:35 +01:00
|
|
|
|
2018-02-06 19:26:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
2019-03-22 15:36:37 +01:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
2018-02-06 19:26:34 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
2020-01-31 11:37:36 +01:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-16 15:06:56 +02:00
|
|
|
|
|
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-14 21:06:07 +02:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-05 19:25:11 +02:00
|
|
|
|
2019-05-08 13:35:57 +02:00
|
|
|
|
2019-05-14 21:06:07 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-05 19:25:11 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-14 21:06:07 +02:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
2019-05-14 21:06:07 +02:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
2019-05-14 21:06:07 +02:00
|
|
|
|
|
|
|
|
|
2019-05-08 13:35:57 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-02-06 19:26:33 +01:00
|
|
|
|
2019-05-11 16:21:49 +02:00
|
|
|
|
2018-02-06 19:26:33 +01:00
|
|
|
|
|
|
|
|
|
2019-05-08 13:35:57 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-02-06 19:26:33 +01:00
|
|
|
|
2013-05-06 17:40:33 -05:00
|
|
|
|
2019-05-08 13:35:57 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-08-27 16:45:10 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-08 13:35:57 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-05 19:25:11 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
2013-05-06 17:40:33 -05:00
|
|
|
|
2019-06-05 19:25:11 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-14 21:06:07 +02:00
|
|
|
|
|
|
|
|
|
2019-06-12 18:33:31 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
2019-06-12 18:33:31 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-14 21:06:07 +02:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-08-04 11:56:26 +02:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-02-28 10:49:12 +01:00
|
|
|
|
|
|
|
|
|
2019-06-13 17:44:08 +02:00
|
|
|
|
|
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
2019-05-27 11:41:36 +02:00
|
|
|
|
2018-04-12 12:04:55 +08:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
2019-02-28 14:20:28 +01:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
2019-05-27 11:41:36 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
2019-05-29 16:53:14 +02:00
|
|
|
|
2018-04-12 12:04:55 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-27 11:41:36 +02:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
2019-05-27 11:41:36 +02:00
|
|
|
|
2019-02-28 14:20:28 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-12 18:33:31 +02:00
|
|
|
|
2019-02-28 14:20:28 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-13 17:44:08 +02:00
|
|
|
|
|
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
2019-05-27 11:41:36 +02:00
|
|
|
|
2019-06-12 18:33:31 +02:00
|
|
|
|
|
|
|
|
|
2018-04-12 12:04:55 +08:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-12 18:33:31 +02:00
|
|
|
|
|
|
|
|
|
2019-02-25 12:37:50 +01:00
|
|
|
|
2019-06-12 18:33:31 +02:00
|
|
|
|
2019-05-27 11:41:36 +02:00
|
|
|
|
|
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
2019-02-28 10:49:12 +01:00
|
|
|
|
2019-05-29 16:53:14 +02:00
|
|
|
|
2019-02-28 10:49:12 +01:00
|
|
|
|
|
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
2019-06-12 18:33:31 +02:00
|
|
|
|
|
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
2019-05-27 11:41:36 +02:00
|
|
|
|
2018-10-15 16:11:37 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-12 18:33:31 +02:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-01-20 10:30:11 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
treewide: Replace kmalloc with kmalloc_obj for non-scalar types
This is the result of running the Coccinelle script from
scripts/coccinelle/api/kmalloc_objs.cocci. The script is designed to
avoid scalar types (which need careful case-by-case checking), and
instead replace kmalloc-family calls that allocate struct or union
object instances:
Single allocations: kmalloc(sizeof(TYPE), ...)
are replaced with: kmalloc_obj(TYPE, ...)
Array allocations: kmalloc_array(COUNT, sizeof(TYPE), ...)
are replaced with: kmalloc_objs(TYPE, COUNT, ...)
Flex array allocations: kmalloc(struct_size(PTR, FAM, COUNT), ...)
are replaced with: kmalloc_flex(*PTR, FAM, COUNT, ...)
(where TYPE may also be *VAR)
The resulting allocations no longer return "void *", instead returning
"TYPE *".
Signed-off-by: Kees Cook <kees@kernel.org>
2026-02-20 23:49:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-01-20 10:30:11 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-02-03 16:06:19 +01:00
|
|
|
|
2018-01-20 10:30:11 +01:00
|
|
|
|
2023-02-03 16:06:19 +01:00
|
|
|
|
2018-01-20 10:30:11 +01:00
|
|
|
|
|
|
|
|
|
2023-02-03 16:06:19 +01:00
|
|
|
|
2018-01-20 10:30:11 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-14 20:45:38 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-13 17:44:08 +02:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-02-06 19:26:33 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
2019-02-28 10:49:12 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
2019-06-13 17:44:08 +02:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
2018-02-06 19:26:33 +01:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-02-06 19:26:33 +01:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
2019-06-05 19:25:11 +02:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
2019-06-05 19:25:11 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
2019-06-05 19:25:11 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-13 17:44:08 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-05 19:25:11 +02:00
|
|
|
|
2019-06-13 17:44:08 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-05 19:25:11 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
2020-08-23 17:36:59 -05:00
|
|
|
|
2019-06-05 19:25:11 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-13 17:44:08 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-08-23 17:36:59 -05:00
|
|
|
|
2019-06-13 17:44:08 +02:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
2018-04-04 14:53:39 +02:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-05 19:25:11 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
2019-06-05 19:25:11 +02:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
2019-06-05 19:25:11 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-14 21:06:07 +02:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
2019-06-13 17:44:08 +02:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
2019-06-13 17:44:08 +02:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
2019-05-14 21:06:07 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-06-05 16:33:35 +02:00
|
|
|
|
2019-06-05 19:25:11 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
2019-06-05 19:25:11 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
2019-06-05 19:25:11 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-14 21:06:07 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-14 20:45:38 +02:00
|
|
|
|
2019-05-11 16:21:49 +02:00
|
|
|
|
2019-05-14 20:45:38 +02:00
|
|
|
|
2019-06-13 17:44:08 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
2019-05-14 20:45:38 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
2019-06-13 17:44:08 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-08-23 17:36:59 -05:00
|
|
|
|
2019-06-13 17:44:08 +02:00
|
|
|
|
2019-06-05 19:25:11 +02:00
|
|
|
|
2019-06-13 17:44:08 +02:00
|
|
|
|
2019-06-05 19:25:11 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
2018-04-04 14:53:39 +02:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-14 20:45:38 +02:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
2019-05-11 16:21:49 +02:00
|
|
|
|
|
|
|
|
|
2018-02-01 11:50:47 +01:00
|
|
|
|
|
|
|
|
|
2019-05-16 15:06:56 +02:00
|
|
|
|
2019-05-14 20:45:38 +02:00
|
|
|
|
2018-02-01 11:50:47 +01:00
|
|
|
|
2019-05-14 21:06:07 +02:00
|
|
|
|
2019-05-14 20:45:38 +02:00
|
|
|
|
2019-05-14 21:06:07 +02:00
|
|
|
|
2019-05-14 20:45:38 +02:00
|
|
|
|
2019-05-14 21:06:07 +02:00
|
|
|
|
|
|
|
|
|
2013-05-06 17:40:33 -05:00
|
|
|
|
2019-05-16 15:06:56 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-04-21 00:32:07 -05:00
|
|
|
|
2019-05-14 20:45:38 +02:00
|
|
|
|
2013-01-24 16:13:36 -06:00
|
|
|
|
|
|
|
|
|
2019-05-16 15:06:56 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-11 16:21:49 +02:00
|
|
|
|
2013-01-24 16:13:36 -06:00
|
|
|
|
2019-05-16 15:06:56 +02:00
|
|
|
|
|
|
|
|
|
2018-02-01 11:50:47 +01:00
|
|
|
|
2013-01-24 16:13:36 -06:00
|
|
|
|
2019-05-30 16:07:48 +02:00
|
|
|
|
2018-02-01 11:50:47 +01:00
|
|
|
|
2019-05-30 16:07:48 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-11-12 19:41:48 +01:00
|
|
|
|
2019-05-30 16:07:48 +02:00
|
|
|
|
|
|
|
|
|
2018-02-01 11:50:47 +01:00
|
|
|
|
2019-06-05 19:25:11 +02:00
|
|
|
|
|
|
|
|
|
2019-05-30 16:07:48 +02:00
|
|
|
|
2013-01-24 16:13:36 -06:00
|
|
|
|
2019-05-30 16:07:48 +02:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
2013-01-24 16:13:36 -06:00
|
|
|
|
2019-06-06 17:14:49 +02:00
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
2019-05-30 16:07:48 +02:00
|
|
|
|
2019-06-06 17:14:49 +02:00
|
|
|
|
2019-05-30 16:07:48 +02:00
|
|
|
|
|
|
|
|
|
2019-06-06 17:14:49 +02:00
|
|
|
|
2019-05-30 16:07:48 +02:00
|
|
|
|
|
|
|
|
|
2019-06-06 17:14:49 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-30 16:07:48 +02:00
|
|
|
|
2019-06-06 17:14:49 +02:00
|
|
|
|
2019-05-30 16:07:48 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-01-17 18:59:44 +01:00
|
|
|
|
2019-05-30 16:07:48 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-01-17 18:59:44 +01:00
|
|
|
|
2024-07-23 18:07:59 +02:00
|
|
|
|
2024-01-17 18:59:44 +01:00
|
|
|
|
2024-07-23 17:54:39 +02:00
|
|
|
|
2024-01-17 18:59:44 +01:00
|
|
|
|
|
|
|
|
|
2019-05-30 16:07:48 +02:00
|
|
|
|
|
|
|
|
|
2024-07-23 17:54:39 +02:00
|
|
|
|
2019-05-30 16:07:48 +02:00
|
|
|
|
|
|
|
|
|
2019-06-06 17:14:49 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-16 15:06:56 +02:00
|
|
|
|
|
|
|
|
|
2023-06-05 16:33:35 +02:00
|
|
|
|
2019-05-16 15:06:56 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-06-05 16:33:35 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2026-01-07 22:37:55 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-06-05 16:33:35 +02:00
|
|
|
|
2026-01-07 22:37:55 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-06-05 16:33:35 +02:00
|
|
|
|
2026-01-07 22:37:55 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-06-05 16:33:35 +02:00
|
|
|
|
2019-05-16 15:06:56 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-06 17:14:49 +02:00
|
|
|
|
2018-02-01 11:50:47 +01:00
|
|
|
|
|
|
|
|
|
2019-05-16 15:06:56 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-01-29 14:04:08 +01:00
|
|
|
|
2019-06-06 17:14:49 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-16 15:06:56 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-08-23 17:36:59 -05:00
|
|
|
|
2019-05-16 15:06:56 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-02-01 11:50:47 +01:00
|
|
|
|
2019-05-16 15:06:56 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-30 16:07:48 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-02-01 11:50:47 +01:00
|
|
|
|
|
|
|
|
|
2019-05-16 15:06:56 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-02-01 11:50:47 +01:00
|
|
|
|
|
|
|
|
|
2019-05-16 15:06:56 +02:00
|
|
|
|
|
|
|
|
|
2020-01-31 11:37:36 +01:00
|
|
|
|
2019-05-16 15:06:56 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-02-12 15:23:58 +01:00
|
|
|
|
2019-05-16 15:06:56 +02:00
|
|
|
|
2020-01-31 11:37:36 +01:00
|
|
|
|
2019-05-16 15:06:56 +02:00
|
|
|
|
2018-02-01 11:50:47 +01:00
|
|
|
|
2013-01-24 16:13:36 -06:00
|
|
|
|
2012-11-22 00:00:08 -06:00
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-12-13 16:43:59 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-30 11:15:23 +02:00
|
|
|
|
2026-06-06 21:27:44 +01:00
|
|
|
|
2017-12-13 16:43:59 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-04-13 12:17:38 +02:00
|
|
|
|
|
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-08-01 19:14:24 +02:00
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
2017-12-13 16:43:59 +01:00
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-04-13 12:17:38 +02:00
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-04-13 12:17:38 +02:00
|
|
|
|
|
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
2017-04-13 12:17:38 +02:00
|
|
|
|
2017-04-13 12:17:38 +02:00
|
|
|
|
2019-06-06 17:14:49 +02:00
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
2017-04-13 12:17:38 +02:00
|
|
|
|
|
|
|
|
|
2017-04-13 12:17:38 +02:00
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-03-17 09:44:01 -07:00
|
|
|
|
|
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-03-17 15:18:48 +01:00
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-06 17:14:49 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
2019-06-06 17:14:49 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Lots of exciting things this time!
- support for rbd object-map and fast-diff features (myself). This
will speed up reads, discards and things like snap diffs on sparse
images.
- ceph.snap.btime vxattr to expose snapshot creation time (David
Disseldorp). This will be used to integrate with "Restore Previous
Versions" feature added in Windows 7 for folks who reexport ceph
through SMB.
- security xattrs for ceph (Zheng Yan). Only selinux is supported
for now due to the limitations of ->dentry_init_security().
- support for MSG_ADDR2, FS_BTIME and FS_CHANGE_ATTR features (Jeff
Layton). This is actually a single feature bit which was missing
because of the filesystem pieces. With this in, the kernel client
will finally be reported as "luminous" by "ceph features" -- it is
still being reported as "jewel" even though all required Luminous
features were implemented in 4.13.
- stop NULL-terminating ceph vxattrs (Jeff Layton). The convention
with xattrs is to not terminate and this was causing inconsistencies
with ceph-fuse.
- change filesystem time granularity from 1 us to 1 ns, again fixing
an inconsistency with ceph-fuse (Luis Henriques).
On top of this there are some additional dentry name handling and cap
flushing fixes from Zheng. Finally, Jeff is formally taking over for
Zheng as the filesystem maintainer.
-----BEGIN PGP SIGNATURE-----
iQFHBAABCAAxFiEEydHwtzie9C7TfviiSn/eOAIR84sFAl0u+X8THGlkcnlvbW92
QGdtYWlsLmNvbQAKCRBKf944AhHzi9byB/9fIxzoxtDMvixtJabuGSJRtlijDlWF
GlO6yIWCXl/8v8easR2PCF75U/xv0+QFQmze8PVi8u4Xz589P247NnEuyEZ9n84i
aCavARho6QLZPEL+B04NaqoHBl+ORKQTA6eKGhyKwRp/rn83z5Ubuw2tN7krHT3b
kCY61FuTQGxNY2o/WKv/iLwINYr7H23hCf0WwyyKH1bp7OegiQ14Ebn1NtfS3sMx
hS6h8Ya826vmUW0bCSS/9kzKYBCjksTig0HphUOHq6BoZJs++0b7GukIulRyuLfD
J9Gr9HGPoDCVzdmFfpn2FSlxdmqfO9amUSagd0ftLQfFlPlrpoULi0GW
=Bgxr
-----END PGP SIGNATURE-----
Merge tag 'ceph-for-5.3-rc1' of git://github.com/ceph/ceph-client
Pull ceph updates from Ilya Dryomov:
"Lots of exciting things this time!
- support for rbd object-map and fast-diff features (myself). This
will speed up reads, discards and things like snap diffs on sparse
images.
- ceph.snap.btime vxattr to expose snapshot creation time (David
Disseldorp). This will be used to integrate with "Restore Previous
Versions" feature added in Windows 7 for folks who reexport ceph
through SMB.
- security xattrs for ceph (Zheng Yan). Only selinux is supported for
now due to the limitations of ->dentry_init_security().
- support for MSG_ADDR2, FS_BTIME and FS_CHANGE_ATTR features (Jeff
Layton). This is actually a single feature bit which was missing
because of the filesystem pieces. With this in, the kernel client
will finally be reported as "luminous" by "ceph features" -- it is
still being reported as "jewel" even though all required Luminous
features were implemented in 4.13.
- stop NULL-terminating ceph vxattrs (Jeff Layton). The convention
with xattrs is to not terminate and this was causing
inconsistencies with ceph-fuse.
- change filesystem time granularity from 1 us to 1 ns, again fixing
an inconsistency with ceph-fuse (Luis Henriques).
On top of this there are some additional dentry name handling and cap
flushing fixes from Zheng. Finally, Jeff is formally taking over for
Zheng as the filesystem maintainer"
* tag 'ceph-for-5.3-rc1' of git://github.com/ceph/ceph-client: (71 commits)
ceph: fix end offset in truncate_inode_pages_range call
ceph: use generic_delete_inode() for ->drop_inode
ceph: use ceph_evict_inode to cleanup inode's resource
ceph: initialize superblock s_time_gran to 1
MAINTAINERS: take over for Zheng as CephFS kernel client maintainer
rbd: setallochint only if object doesn't exist
rbd: support for object-map and fast-diff
rbd: call rbd_dev_mapping_set() from rbd_dev_image_probe()
libceph: export osd_req_op_data() macro
libceph: change ceph_osdc_call() to take page vector for response
libceph: bump CEPH_MSG_MAX_DATA_LEN (again)
rbd: new exclusive lock wait/wake code
rbd: quiescing lock should wait for image requests
rbd: lock should be quiesced on reacquire
rbd: introduce copyup state machine
rbd: rename rbd_obj_setup_*() to rbd_obj_init_*()
rbd: move OSD request allocation into object request state machines
rbd: factor out __rbd_osd_setup_discard_ops()
rbd: factor out rbd_osd_setup_copyup()
rbd: introduce obj_req->osd_reqs list
...
2019-07-18 11:05:25 -07:00
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
2019-06-06 17:14:49 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-01-17 18:59:44 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-06 17:14:49 +02:00
|
|
|
|
|
|
|
|
|
2024-01-17 18:59:44 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-06 17:14:49 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
2023-07-22 20:28:08 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-06-30 13:52:13 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
2023-06-30 13:52:13 +02:00
|
|
|
|
|
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
2023-07-08 16:16:59 +02:00
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-06-30 13:52:13 +02:00
|
|
|
|
|
|
|
|
|
2023-08-01 19:14:24 +02:00
|
|
|
|
2023-06-30 13:52:13 +02:00
|
|
|
|
|
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
2023-06-30 13:52:13 +02:00
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
2023-06-30 13:52:13 +02:00
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-06-30 13:52:13 +02:00
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
2023-07-08 16:16:59 +02:00
|
|
|
|
|
|
|
|
|
2023-06-30 13:52:13 +02:00
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
2023-06-30 13:52:13 +02:00
|
|
|
|
2023-07-08 16:16:59 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
2023-06-30 13:52:13 +02:00
|
|
|
|
|
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
2023-07-08 16:16:59 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-06-30 13:52:13 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-08-01 19:14:24 +02:00
|
|
|
|
|
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
2023-08-01 19:14:24 +02:00
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-11-25 14:41:59 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-07-22 20:28:08 +02:00
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-07-22 20:28:08 +02:00
|
|
|
|
2023-06-30 13:52:13 +02:00
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
2023-08-01 19:14:24 +02:00
|
|
|
|
2023-06-30 13:52:13 +02:00
|
|
|
|
2023-08-01 19:14:24 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
2023-06-30 13:52:13 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
2023-06-30 13:52:13 +02:00
|
|
|
|
2019-06-06 17:14:49 +02:00
|
|
|
|
|
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
2023-07-22 20:28:08 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-05 19:25:11 +02:00
|
|
|
|
2023-06-30 13:52:13 +02:00
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
2020-09-14 13:39:19 +02:00
|
|
|
|
2023-06-30 13:52:13 +02:00
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
2023-06-30 13:52:13 +02:00
|
|
|
|
|
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-06-30 13:52:13 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
2023-06-30 13:52:13 +02:00
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
2023-07-22 20:28:08 +02:00
|
|
|
|
2023-06-30 13:52:13 +02:00
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-07-22 20:28:08 +02:00
|
|
|
|
2023-06-30 13:52:13 +02:00
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-05 19:25:11 +02:00
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
2019-06-05 19:25:11 +02:00
|
|
|
|
|
|
|
|
|
2023-06-05 16:33:35 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-05 19:25:11 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
2019-06-06 17:14:49 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
2019-06-06 17:14:49 +02:00
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
2019-06-06 17:14:49 +02:00
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-06 17:14:49 +02:00
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-06 17:14:49 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
2019-06-06 17:14:49 +02:00
|
|
|
|
|
|
|
|
|
2023-08-01 19:14:24 +02:00
|
|
|
|
|
|
|
|
|
2019-06-06 17:14:49 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-05 19:25:11 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-06 17:14:49 +02:00
|
|
|
|
|
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
2019-06-06 17:14:49 +02:00
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-06 17:14:49 +02:00
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-06 17:14:49 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-04-13 12:17:39 +02:00
|
|
|
|
|
|
|
|
|
2019-06-06 17:14:49 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-11-07 22:36:46 +00:00
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-30 11:15:23 +02:00
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
2019-05-30 11:15:23 +02:00
|
|
|
|
Lots of exciting things this time!
- support for rbd object-map and fast-diff features (myself). This
will speed up reads, discards and things like snap diffs on sparse
images.
- ceph.snap.btime vxattr to expose snapshot creation time (David
Disseldorp). This will be used to integrate with "Restore Previous
Versions" feature added in Windows 7 for folks who reexport ceph
through SMB.
- security xattrs for ceph (Zheng Yan). Only selinux is supported
for now due to the limitations of ->dentry_init_security().
- support for MSG_ADDR2, FS_BTIME and FS_CHANGE_ATTR features (Jeff
Layton). This is actually a single feature bit which was missing
because of the filesystem pieces. With this in, the kernel client
will finally be reported as "luminous" by "ceph features" -- it is
still being reported as "jewel" even though all required Luminous
features were implemented in 4.13.
- stop NULL-terminating ceph vxattrs (Jeff Layton). The convention
with xattrs is to not terminate and this was causing inconsistencies
with ceph-fuse.
- change filesystem time granularity from 1 us to 1 ns, again fixing
an inconsistency with ceph-fuse (Luis Henriques).
On top of this there are some additional dentry name handling and cap
flushing fixes from Zheng. Finally, Jeff is formally taking over for
Zheng as the filesystem maintainer.
-----BEGIN PGP SIGNATURE-----
iQFHBAABCAAxFiEEydHwtzie9C7TfviiSn/eOAIR84sFAl0u+X8THGlkcnlvbW92
QGdtYWlsLmNvbQAKCRBKf944AhHzi9byB/9fIxzoxtDMvixtJabuGSJRtlijDlWF
GlO6yIWCXl/8v8easR2PCF75U/xv0+QFQmze8PVi8u4Xz589P247NnEuyEZ9n84i
aCavARho6QLZPEL+B04NaqoHBl+ORKQTA6eKGhyKwRp/rn83z5Ubuw2tN7krHT3b
kCY61FuTQGxNY2o/WKv/iLwINYr7H23hCf0WwyyKH1bp7OegiQ14Ebn1NtfS3sMx
hS6h8Ya826vmUW0bCSS/9kzKYBCjksTig0HphUOHq6BoZJs++0b7GukIulRyuLfD
J9Gr9HGPoDCVzdmFfpn2FSlxdmqfO9amUSagd0ftLQfFlPlrpoULi0GW
=Bgxr
-----END PGP SIGNATURE-----
Merge tag 'ceph-for-5.3-rc1' of git://github.com/ceph/ceph-client
Pull ceph updates from Ilya Dryomov:
"Lots of exciting things this time!
- support for rbd object-map and fast-diff features (myself). This
will speed up reads, discards and things like snap diffs on sparse
images.
- ceph.snap.btime vxattr to expose snapshot creation time (David
Disseldorp). This will be used to integrate with "Restore Previous
Versions" feature added in Windows 7 for folks who reexport ceph
through SMB.
- security xattrs for ceph (Zheng Yan). Only selinux is supported for
now due to the limitations of ->dentry_init_security().
- support for MSG_ADDR2, FS_BTIME and FS_CHANGE_ATTR features (Jeff
Layton). This is actually a single feature bit which was missing
because of the filesystem pieces. With this in, the kernel client
will finally be reported as "luminous" by "ceph features" -- it is
still being reported as "jewel" even though all required Luminous
features were implemented in 4.13.
- stop NULL-terminating ceph vxattrs (Jeff Layton). The convention
with xattrs is to not terminate and this was causing
inconsistencies with ceph-fuse.
- change filesystem time granularity from 1 us to 1 ns, again fixing
an inconsistency with ceph-fuse (Luis Henriques).
On top of this there are some additional dentry name handling and cap
flushing fixes from Zheng. Finally, Jeff is formally taking over for
Zheng as the filesystem maintainer"
* tag 'ceph-for-5.3-rc1' of git://github.com/ceph/ceph-client: (71 commits)
ceph: fix end offset in truncate_inode_pages_range call
ceph: use generic_delete_inode() for ->drop_inode
ceph: use ceph_evict_inode to cleanup inode's resource
ceph: initialize superblock s_time_gran to 1
MAINTAINERS: take over for Zheng as CephFS kernel client maintainer
rbd: setallochint only if object doesn't exist
rbd: support for object-map and fast-diff
rbd: call rbd_dev_mapping_set() from rbd_dev_image_probe()
libceph: export osd_req_op_data() macro
libceph: change ceph_osdc_call() to take page vector for response
libceph: bump CEPH_MSG_MAX_DATA_LEN (again)
rbd: new exclusive lock wait/wake code
rbd: quiescing lock should wait for image requests
rbd: lock should be quiesced on reacquire
rbd: introduce copyup state machine
rbd: rename rbd_obj_setup_*() to rbd_obj_init_*()
rbd: move OSD request allocation into object request state machines
rbd: factor out __rbd_osd_setup_discard_ops()
rbd: factor out rbd_osd_setup_copyup()
rbd: introduce obj_req->osd_reqs list
...
2019-07-18 11:05:25 -07:00
|
|
|
|
2019-05-30 11:15:23 +02:00
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-07-23 17:54:39 +02:00
|
|
|
|
|
|
|
|
|
2021-07-03 11:31:26 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-07-23 17:54:39 +02:00
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
2024-07-23 17:54:39 +02:00
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
2019-05-30 16:07:48 +02:00
|
|
|
|
2019-05-30 11:15:23 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-05 19:25:11 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-30 16:07:48 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-05 19:25:11 +02:00
|
|
|
|
2017-04-13 12:17:38 +02:00
|
|
|
|
2019-05-30 16:07:48 +02:00
|
|
|
|
|
|
|
|
|
2019-05-30 11:15:23 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-30 16:07:48 +02:00
|
|
|
|
2019-05-30 11:15:23 +02:00
|
|
|
|
2017-04-13 12:17:38 +02:00
|
|
|
|
|
|
|
|
|
2019-06-06 17:14:49 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-04-13 12:17:38 +02:00
|
|
|
|
|
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-06 17:14:49 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-07-03 11:56:55 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-06 17:14:49 +02:00
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-07-03 11:56:55 +02:00
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
2021-07-03 11:56:55 +02:00
|
|
|
|
|
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-06 17:14:49 +02:00
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-04-13 12:17:39 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-04-13 12:17:39 +02:00
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-04-13 12:17:39 +02:00
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
2017-04-13 12:17:39 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-04-13 12:17:39 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
2017-04-13 12:17:39 +02:00
|
|
|
|
|
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
2017-04-13 12:17:39 +02:00
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-03-17 09:44:01 -07:00
|
|
|
|
|
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-05-26 01:15:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-11-30 17:53:04 -06:00
|
|
|
|
2016-05-26 01:15:02 +02:00
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
2016-09-06 11:15:48 +02:00
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
2012-11-30 17:53:04 -06:00
|
|
|
|
|
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-07-23 17:11:20 +04:00
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-11-30 17:53:04 -06:00
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-04-13 12:17:39 +02:00
|
|
|
|
|
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
2017-04-13 12:17:39 +02:00
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-11-30 17:53:04 -06:00
|
|
|
|
|
|
|
|
|
2016-08-12 16:11:41 +02:00
|
|
|
|
|
|
|
|
|
2016-05-26 01:15:02 +02:00
|
|
|
|
2014-06-19 11:38:14 +04:00
|
|
|
|
2016-05-26 01:15:02 +02:00
|
|
|
|
2014-06-19 11:38:14 +04:00
|
|
|
|
2016-05-26 01:15:02 +02:00
|
|
|
|
2014-06-19 11:38:14 +04:00
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-06-19 11:38:14 +04:00
|
|
|
|
2016-08-12 16:11:41 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-06-19 11:38:14 +04:00
|
|
|
|
2016-08-12 16:11:41 +02:00
|
|
|
|
2014-06-19 11:38:14 +04:00
|
|
|
|
2016-08-12 16:11:41 +02:00
|
|
|
|
2014-06-19 11:38:14 +04:00
|
|
|
|
|
|
|
|
|
2013-01-18 12:31:10 -06:00
|
|
|
|
2016-08-12 16:11:41 +02:00
|
|
|
|
2013-01-18 12:31:10 -06:00
|
|
|
|
2016-08-12 16:11:41 +02:00
|
|
|
|
2013-01-18 12:31:10 -06:00
|
|
|
|
|
|
|
|
|
2016-05-26 01:15:02 +02:00
|
|
|
|
2013-01-18 12:31:10 -06:00
|
|
|
|
2016-05-26 01:15:02 +02:00
|
|
|
|
2016-08-12 16:11:41 +02:00
|
|
|
|
2013-01-18 12:31:10 -06:00
|
|
|
|
2016-05-26 01:15:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-01-25 17:08:55 -06:00
|
|
|
|
2016-05-26 01:15:02 +02:00
|
|
|
|
2014-05-22 19:28:52 +04:00
|
|
|
|
2013-01-18 12:31:10 -06:00
|
|
|
|
|
|
|
|
|
2016-08-12 16:11:41 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-12-16 18:02:40 +02:00
|
|
|
|
2016-05-26 01:15:02 +02:00
|
|
|
|
|
|
|
|
|
2014-05-22 19:28:52 +04:00
|
|
|
|
2016-08-12 16:11:41 +02:00
|
|
|
|
|
|
|
|
|
2014-05-22 19:28:52 +04:00
|
|
|
|
2016-05-26 01:15:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-05-22 19:28:52 +04:00
|
|
|
|
2016-05-26 01:15:02 +02:00
|
|
|
|
2016-04-28 16:07:26 +02:00
|
|
|
|
|
|
|
|
|
2016-08-12 16:11:41 +02:00
|
|
|
|
2016-04-28 16:07:26 +02:00
|
|
|
|
2016-08-12 16:11:41 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-03-13 11:20:51 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-12 16:11:41 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
rbd: fix rbd map vs notify races
A while ago, commit 9875201e1049 ("rbd: fix use-after free of
rbd_dev->disk") fixed rbd unmap vs notify race by introducing
an exported wrapper for flushing notifies and sticking it into
do_rbd_remove().
A similar problem exists on the rbd map path, though: the watch is
registered in rbd_dev_image_probe(), while the disk is set up quite
a few steps later, in rbd_dev_device_setup(). Nothing prevents
a notify from coming in and crashing on a NULL rbd_dev->disk:
BUG: unable to handle kernel NULL pointer dereference at 0000000000000050
Call Trace:
[<ffffffffa0508344>] rbd_watch_cb+0x34/0x180 [rbd]
[<ffffffffa04bd290>] do_event_work+0x40/0xb0 [libceph]
[<ffffffff8109d5db>] process_one_work+0x17b/0x470
[<ffffffff8109e3ab>] worker_thread+0x11b/0x400
[<ffffffff8109e290>] ? rescuer_thread+0x400/0x400
[<ffffffff810a5acf>] kthread+0xcf/0xe0
[<ffffffff810b41b3>] ? finish_task_switch+0x53/0x170
[<ffffffff810a5a00>] ? kthread_create_on_node+0x140/0x140
[<ffffffff81645dd8>] ret_from_fork+0x58/0x90
[<ffffffff810a5a00>] ? kthread_create_on_node+0x140/0x140
RIP [<ffffffffa050828a>] rbd_dev_refresh+0xfa/0x180 [rbd]
If an error occurs during rbd map, we have to error out, potentially
tearing down a watch. Just like on rbd unmap, notifies have to be
flushed, otherwise rbd_watch_cb() may end up trying to read in the
image header after rbd_dev_image_release() has run:
Assertion failure in rbd_dev_header_info() at line 4722:
rbd_assert(rbd_image_format_valid(rbd_dev->image_format));
Call Trace:
[<ffffffff81cccee0>] ? rbd_parent_request_create+0x150/0x150
[<ffffffff81cd4e59>] rbd_dev_refresh+0x59/0x390
[<ffffffff81cd5229>] rbd_watch_cb+0x69/0x290
[<ffffffff81fde9bf>] do_event_work+0x10f/0x1c0
[<ffffffff81107799>] process_one_work+0x689/0x1a80
[<ffffffff811076f7>] ? process_one_work+0x5e7/0x1a80
[<ffffffff81132065>] ? finish_task_switch+0x225/0x640
[<ffffffff81107110>] ? pwq_dec_nr_in_flight+0x2b0/0x2b0
[<ffffffff81108c69>] worker_thread+0xd9/0x1320
[<ffffffff81108b90>] ? process_one_work+0x1a80/0x1a80
[<ffffffff8111b02d>] kthread+0x21d/0x2e0
[<ffffffff8111ae10>] ? kthread_stop+0x550/0x550
[<ffffffff82022802>] ret_from_fork+0x22/0x40
[<ffffffff8111ae10>] ? kthread_stop+0x550/0x550
RIP [<ffffffff81ccd8f9>] rbd_dev_header_info+0xa19/0x1e30
To fix this, a) check if RBD_DEV_FLAG_EXISTS is set before calling
revalidate_disk(), b) move ceph_osdc_flush_notifies() call into
rbd_dev_header_unwatch_sync() to cover rbd map error paths and c) turn
header read-in into a critical section. The latter also happens to
take care of rbd map foo@bar vs rbd snap rm foo@bar race.
Fixes: http://tracker.ceph.com/issues/15490
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Reviewed-by: Josh Durgin <jdurgin@redhat.com>
2016-04-15 16:22:16 +02:00
|
|
|
|
2018-06-04 06:24:37 -04:00
|
|
|
|
rbd: fix rbd map vs notify races
A while ago, commit 9875201e1049 ("rbd: fix use-after free of
rbd_dev->disk") fixed rbd unmap vs notify race by introducing
an exported wrapper for flushing notifies and sticking it into
do_rbd_remove().
A similar problem exists on the rbd map path, though: the watch is
registered in rbd_dev_image_probe(), while the disk is set up quite
a few steps later, in rbd_dev_device_setup(). Nothing prevents
a notify from coming in and crashing on a NULL rbd_dev->disk:
BUG: unable to handle kernel NULL pointer dereference at 0000000000000050
Call Trace:
[<ffffffffa0508344>] rbd_watch_cb+0x34/0x180 [rbd]
[<ffffffffa04bd290>] do_event_work+0x40/0xb0 [libceph]
[<ffffffff8109d5db>] process_one_work+0x17b/0x470
[<ffffffff8109e3ab>] worker_thread+0x11b/0x400
[<ffffffff8109e290>] ? rescuer_thread+0x400/0x400
[<ffffffff810a5acf>] kthread+0xcf/0xe0
[<ffffffff810b41b3>] ? finish_task_switch+0x53/0x170
[<ffffffff810a5a00>] ? kthread_create_on_node+0x140/0x140
[<ffffffff81645dd8>] ret_from_fork+0x58/0x90
[<ffffffff810a5a00>] ? kthread_create_on_node+0x140/0x140
RIP [<ffffffffa050828a>] rbd_dev_refresh+0xfa/0x180 [rbd]
If an error occurs during rbd map, we have to error out, potentially
tearing down a watch. Just like on rbd unmap, notifies have to be
flushed, otherwise rbd_watch_cb() may end up trying to read in the
image header after rbd_dev_image_release() has run:
Assertion failure in rbd_dev_header_info() at line 4722:
rbd_assert(rbd_image_format_valid(rbd_dev->image_format));
Call Trace:
[<ffffffff81cccee0>] ? rbd_parent_request_create+0x150/0x150
[<ffffffff81cd4e59>] rbd_dev_refresh+0x59/0x390
[<ffffffff81cd5229>] rbd_watch_cb+0x69/0x290
[<ffffffff81fde9bf>] do_event_work+0x10f/0x1c0
[<ffffffff81107799>] process_one_work+0x689/0x1a80
[<ffffffff811076f7>] ? process_one_work+0x5e7/0x1a80
[<ffffffff81132065>] ? finish_task_switch+0x225/0x640
[<ffffffff81107110>] ? pwq_dec_nr_in_flight+0x2b0/0x2b0
[<ffffffff81108c69>] worker_thread+0xd9/0x1320
[<ffffffff81108b90>] ? process_one_work+0x1a80/0x1a80
[<ffffffff8111b02d>] kthread+0x21d/0x2e0
[<ffffffff8111ae10>] ? kthread_stop+0x550/0x550
[<ffffffff82022802>] ret_from_fork+0x22/0x40
[<ffffffff8111ae10>] ? kthread_stop+0x550/0x550
RIP [<ffffffff81ccd8f9>] rbd_dev_header_info+0xa19/0x1e30
To fix this, a) check if RBD_DEV_FLAG_EXISTS is set before calling
revalidate_disk(), b) move ceph_osdc_flush_notifies() call into
rbd_dev_header_unwatch_sync() to cover rbd map error paths and c) turn
header read-in into a critical section. The latter also happens to
take care of rbd map foo@bar vs rbd snap rm foo@bar race.
Fixes: http://tracker.ceph.com/issues/15490
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Reviewed-by: Josh Durgin <jdurgin@redhat.com>
2016-04-15 16:22:16 +02:00
|
|
|
|
2013-12-16 18:02:40 +02:00
|
|
|
|
|
|
|
|
|
2017-04-13 12:17:38 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-30 11:15:23 +02:00
|
|
|
|
|
|
|
|
|
2017-04-13 12:17:38 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-07-23 18:07:59 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-04-13 12:17:38 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-30 16:07:48 +02:00
|
|
|
|
2019-05-30 11:15:23 +02:00
|
|
|
|
2017-04-13 12:17:38 +02:00
|
|
|
|
2017-12-13 16:43:59 +01:00
|
|
|
|
2019-06-06 17:14:49 +02:00
|
|
|
|
2017-04-13 12:17:38 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-12 16:11:41 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-09-29 13:41:05 +02:00
|
|
|
|
|
|
|
|
|
2017-04-13 12:17:38 +02:00
|
|
|
|
2016-09-29 13:41:05 +02:00
|
|
|
|
2016-08-12 16:11:41 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-09-14 13:39:19 +02:00
|
|
|
|
2016-08-12 16:11:41 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-06 17:14:49 +02:00
|
|
|
|
|
|
|
|
|
2016-09-29 13:41:05 +02:00
|
|
|
|
2019-06-06 17:14:49 +02:00
|
|
|
|
2016-09-29 13:41:05 +02:00
|
|
|
|
2019-06-06 17:14:49 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-04-13 12:17:38 +02:00
|
|
|
|
2016-08-12 16:11:41 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-04-13 12:17:38 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-12 16:11:41 +02:00
|
|
|
|
|
|
|
|
|
2018-03-19 13:33:10 +00:00
|
|
|
|
2016-08-12 16:11:41 +02:00
|
|
|
|
|
|
|
|
|
2013-01-19 00:30:28 -06:00
|
|
|
|
2013-04-25 15:09:42 -05:00
|
|
|
|
|
|
|
|
|
2013-01-19 00:30:28 -06:00
|
|
|
|
|
|
|
|
|
2017-01-25 18:16:21 +01:00
|
|
|
|
|
|
|
|
|
2013-01-19 00:30:28 -06:00
|
|
|
|
2013-04-21 12:14:45 -05:00
|
|
|
|
2013-01-19 00:30:28 -06:00
|
|
|
|
2013-04-21 12:14:45 -05:00
|
|
|
|
2013-04-30 00:44:33 -05:00
|
|
|
|
2013-01-19 00:30:28 -06:00
|
|
|
|
2017-01-25 18:16:21 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-01-19 00:30:28 -06:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-04-05 01:27:11 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-01-19 00:30:28 -06:00
|
|
|
|
2017-01-25 18:16:21 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-01-19 00:30:28 -06:00
|
|
|
|
2017-01-25 18:16:21 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-01-19 00:30:28 -06:00
|
|
|
|
2017-01-25 18:16:21 +01:00
|
|
|
|
2013-04-05 14:46:02 -05:00
|
|
|
|
2013-04-03 21:32:51 -05:00
|
|
|
|
2017-01-25 18:16:21 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-01-19 00:30:28 -06:00
|
|
|
|
2017-01-25 18:16:21 +01:00
|
|
|
|
|
|
|
|
|
2019-06-14 18:16:51 +02:00
|
|
|
|
2017-01-25 18:16:21 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-01-19 00:30:28 -06:00
|
|
|
|
2017-01-25 18:16:21 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-01-19 00:30:28 -06:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-01-13 17:20:04 +01:00
|
|
|
|
2014-08-04 18:04:39 +04:00
|
|
|
|
2020-02-12 15:23:58 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-08-04 18:04:39 +04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-02-12 15:23:58 +01:00
|
|
|
|
2014-08-04 18:04:39 +04:00
|
|
|
|
|
|
|
|
|
2015-01-13 17:20:04 +01:00
|
|
|
|
|
|
|
|
|
2014-04-08 11:12:11 -07:00
|
|
|
|
2020-02-12 15:08:39 +01:00
|
|
|
|
2014-04-08 11:12:11 -07:00
|
|
|
|
|
|
|
|
|
2019-08-30 17:31:06 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-01-29 12:46:25 +01:00
|
|
|
|
2018-02-06 19:26:34 +01:00
|
|
|
|
2014-04-01 22:22:16 +08:00
|
|
|
|
2018-02-06 19:26:34 +01:00
|
|
|
|
|
|
|
|
|
2019-05-16 15:06:56 +02:00
|
|
|
|
2014-08-04 18:04:39 +04:00
|
|
|
|
|
|
|
|
|
2019-05-30 16:07:48 +02:00
|
|
|
|
2014-08-04 18:04:39 +04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-01-31 11:37:36 +01:00
|
|
|
|
2014-08-04 18:04:39 +04:00
|
|
|
|
|
|
|
|
|
2014-03-13 11:21:35 +08:00
|
|
|
|
2017-06-03 09:38:04 +02:00
|
|
|
|
2014-08-04 18:04:39 +04:00
|
|
|
|
|
|
|
|
|
2017-06-03 09:38:05 +02:00
|
|
|
|
2015-01-13 17:20:04 +01:00
|
|
|
|
2014-08-04 18:04:39 +04:00
|
|
|
|
2020-02-12 15:23:58 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-08-04 18:04:39 +04:00
|
|
|
|
2020-02-12 15:23:58 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-06-03 09:38:05 +02:00
|
|
|
|
2012-11-22 00:00:08 -06:00
|
|
|
|
|
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
|
|
|
|
|
2022-06-19 08:05:52 +02:00
|
|
|
|
2017-04-13 12:17:38 +02:00
|
|
|
|
2013-04-25 23:15:08 -05:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
|
|
|
|
|
2013-01-17 12:25:27 -06:00
|
|
|
|
2017-01-25 18:16:21 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-01-17 12:25:27 -06:00
|
|
|
|
|
|
|
|
|
2017-01-25 18:16:21 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-01-17 12:25:27 -06:00
|
|
|
|
|
|
|
|
|
2017-01-25 18:16:21 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-01-17 12:25:27 -06:00
|
|
|
|
2017-01-25 18:16:21 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-01-17 12:25:27 -06:00
|
|
|
|
2017-01-25 18:16:21 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-02-06 13:11:38 -06:00
|
|
|
|
2017-01-25 18:16:21 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-01-17 12:25:27 -06:00
|
|
|
|
2018-10-15 16:11:37 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-06-30 16:21:50 -04:00
|
|
|
|
2017-01-25 18:16:21 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-01-17 12:25:27 -06:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2013-05-06 09:51:29 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-08-02 11:29:46 -05:00
|
|
|
|
2023-09-19 20:41:47 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-08-02 11:29:46 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-05-06 09:51:29 -05:00
|
|
|
|
2012-08-02 11:29:46 -05:00
|
|
|
|
2017-01-25 18:16:21 +01:00
|
|
|
|
|
|
|
|
|
2012-08-02 11:29:46 -05:00
|
|
|
|
2013-05-06 09:51:29 -05:00
|
|
|
|
2013-04-26 09:43:47 -05:00
|
|
|
|
2012-08-02 11:29:46 -05:00
|
|
|
|
2012-11-01 10:17:15 -05:00
|
|
|
|
|
|
|
|
|
2013-05-06 09:51:29 -05:00
|
|
|
|
2012-08-02 11:29:46 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-11-01 10:17:15 -05:00
|
|
|
|
2013-05-06 09:51:29 -05:00
|
|
|
|
2012-08-02 11:29:46 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-09-19 20:41:47 +02:00
|
|
|
|
2013-05-06 09:51:29 -05:00
|
|
|
|
2012-08-02 11:29:46 -05:00
|
|
|
|
|
|
|
|
|
2010-11-19 14:51:04 -08:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
|
|
|
|
|
2013-08-29 17:26:31 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
rbd: fix rbd map vs notify races
A while ago, commit 9875201e1049 ("rbd: fix use-after free of
rbd_dev->disk") fixed rbd unmap vs notify race by introducing
an exported wrapper for flushing notifies and sticking it into
do_rbd_remove().
A similar problem exists on the rbd map path, though: the watch is
registered in rbd_dev_image_probe(), while the disk is set up quite
a few steps later, in rbd_dev_device_setup(). Nothing prevents
a notify from coming in and crashing on a NULL rbd_dev->disk:
BUG: unable to handle kernel NULL pointer dereference at 0000000000000050
Call Trace:
[<ffffffffa0508344>] rbd_watch_cb+0x34/0x180 [rbd]
[<ffffffffa04bd290>] do_event_work+0x40/0xb0 [libceph]
[<ffffffff8109d5db>] process_one_work+0x17b/0x470
[<ffffffff8109e3ab>] worker_thread+0x11b/0x400
[<ffffffff8109e290>] ? rescuer_thread+0x400/0x400
[<ffffffff810a5acf>] kthread+0xcf/0xe0
[<ffffffff810b41b3>] ? finish_task_switch+0x53/0x170
[<ffffffff810a5a00>] ? kthread_create_on_node+0x140/0x140
[<ffffffff81645dd8>] ret_from_fork+0x58/0x90
[<ffffffff810a5a00>] ? kthread_create_on_node+0x140/0x140
RIP [<ffffffffa050828a>] rbd_dev_refresh+0xfa/0x180 [rbd]
If an error occurs during rbd map, we have to error out, potentially
tearing down a watch. Just like on rbd unmap, notifies have to be
flushed, otherwise rbd_watch_cb() may end up trying to read in the
image header after rbd_dev_image_release() has run:
Assertion failure in rbd_dev_header_info() at line 4722:
rbd_assert(rbd_image_format_valid(rbd_dev->image_format));
Call Trace:
[<ffffffff81cccee0>] ? rbd_parent_request_create+0x150/0x150
[<ffffffff81cd4e59>] rbd_dev_refresh+0x59/0x390
[<ffffffff81cd5229>] rbd_watch_cb+0x69/0x290
[<ffffffff81fde9bf>] do_event_work+0x10f/0x1c0
[<ffffffff81107799>] process_one_work+0x689/0x1a80
[<ffffffff811076f7>] ? process_one_work+0x5e7/0x1a80
[<ffffffff81132065>] ? finish_task_switch+0x225/0x640
[<ffffffff81107110>] ? pwq_dec_nr_in_flight+0x2b0/0x2b0
[<ffffffff81108c69>] worker_thread+0xd9/0x1320
[<ffffffff81108b90>] ? process_one_work+0x1a80/0x1a80
[<ffffffff8111b02d>] kthread+0x21d/0x2e0
[<ffffffff8111ae10>] ? kthread_stop+0x550/0x550
[<ffffffff82022802>] ret_from_fork+0x22/0x40
[<ffffffff8111ae10>] ? kthread_stop+0x550/0x550
RIP [<ffffffff81ccd8f9>] rbd_dev_header_info+0xa19/0x1e30
To fix this, a) check if RBD_DEV_FLAG_EXISTS is set before calling
revalidate_disk(), b) move ceph_osdc_flush_notifies() call into
rbd_dev_header_unwatch_sync() to cover rbd map error paths and c) turn
header read-in into a critical section. The latter also happens to
take care of rbd map foo@bar vs rbd snap rm foo@bar race.
Fixes: http://tracker.ceph.com/issues/15490
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Reviewed-by: Josh Durgin <jdurgin@redhat.com>
2016-04-15 16:22:16 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-08-29 17:26:31 -07:00
|
|
|
|
rbd: fix rbd map vs notify races
A while ago, commit 9875201e1049 ("rbd: fix use-after free of
rbd_dev->disk") fixed rbd unmap vs notify race by introducing
an exported wrapper for flushing notifies and sticking it into
do_rbd_remove().
A similar problem exists on the rbd map path, though: the watch is
registered in rbd_dev_image_probe(), while the disk is set up quite
a few steps later, in rbd_dev_device_setup(). Nothing prevents
a notify from coming in and crashing on a NULL rbd_dev->disk:
BUG: unable to handle kernel NULL pointer dereference at 0000000000000050
Call Trace:
[<ffffffffa0508344>] rbd_watch_cb+0x34/0x180 [rbd]
[<ffffffffa04bd290>] do_event_work+0x40/0xb0 [libceph]
[<ffffffff8109d5db>] process_one_work+0x17b/0x470
[<ffffffff8109e3ab>] worker_thread+0x11b/0x400
[<ffffffff8109e290>] ? rescuer_thread+0x400/0x400
[<ffffffff810a5acf>] kthread+0xcf/0xe0
[<ffffffff810b41b3>] ? finish_task_switch+0x53/0x170
[<ffffffff810a5a00>] ? kthread_create_on_node+0x140/0x140
[<ffffffff81645dd8>] ret_from_fork+0x58/0x90
[<ffffffff810a5a00>] ? kthread_create_on_node+0x140/0x140
RIP [<ffffffffa050828a>] rbd_dev_refresh+0xfa/0x180 [rbd]
If an error occurs during rbd map, we have to error out, potentially
tearing down a watch. Just like on rbd unmap, notifies have to be
flushed, otherwise rbd_watch_cb() may end up trying to read in the
image header after rbd_dev_image_release() has run:
Assertion failure in rbd_dev_header_info() at line 4722:
rbd_assert(rbd_image_format_valid(rbd_dev->image_format));
Call Trace:
[<ffffffff81cccee0>] ? rbd_parent_request_create+0x150/0x150
[<ffffffff81cd4e59>] rbd_dev_refresh+0x59/0x390
[<ffffffff81cd5229>] rbd_watch_cb+0x69/0x290
[<ffffffff81fde9bf>] do_event_work+0x10f/0x1c0
[<ffffffff81107799>] process_one_work+0x689/0x1a80
[<ffffffff811076f7>] ? process_one_work+0x5e7/0x1a80
[<ffffffff81132065>] ? finish_task_switch+0x225/0x640
[<ffffffff81107110>] ? pwq_dec_nr_in_flight+0x2b0/0x2b0
[<ffffffff81108c69>] worker_thread+0xd9/0x1320
[<ffffffff81108b90>] ? process_one_work+0x1a80/0x1a80
[<ffffffff8111b02d>] kthread+0x21d/0x2e0
[<ffffffff8111ae10>] ? kthread_stop+0x550/0x550
[<ffffffff82022802>] ret_from_fork+0x22/0x40
[<ffffffff8111ae10>] ? kthread_stop+0x550/0x550
RIP [<ffffffff81ccd8f9>] rbd_dev_header_info+0xa19/0x1e30
To fix this, a) check if RBD_DEV_FLAG_EXISTS is set before calling
revalidate_disk(), b) move ceph_osdc_flush_notifies() call into
rbd_dev_header_unwatch_sync() to cover rbd map error paths and c) turn
header read-in into a critical section. The latter also happens to
take care of rbd map foo@bar vs rbd snap rm foo@bar race.
Fixes: http://tracker.ceph.com/issues/15490
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Reviewed-by: Josh Durgin <jdurgin@redhat.com>
2016-04-15 16:22:16 +02:00
|
|
|
|
|
|
|
|
|
2013-08-29 17:26:31 -07:00
|
|
|
|
|
|
|
|
|
2020-11-16 15:57:07 +01:00
|
|
|
|
2013-08-29 17:26:31 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-03-30 13:39:16 -07:00
|
|
|
|
2015-01-13 17:20:04 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-04-16 09:32:18 +02:00
|
|
|
|
|
|
|
|
|
2024-02-15 08:02:50 +01:00
|
|
|
|
|
|
|
|
|
2024-05-31 09:47:58 +02:00
|
|
|
|
2024-02-15 08:02:50 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-01-13 17:20:04 +01:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2015-01-13 17:20:04 +01:00
|
|
|
|
|
|
|
|
|
2015-06-23 16:21:19 +03:00
|
|
|
|
2015-01-13 17:20:04 +01:00
|
|
|
|
2020-01-31 11:37:39 +01:00
|
|
|
|
2020-02-12 15:23:58 +01:00
|
|
|
|
2015-01-13 17:20:04 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-06-02 09:53:37 +03:00
|
|
|
|
2011-07-22 11:35:23 -07:00
|
|
|
|
2024-02-15 08:02:50 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-06-17 08:04:44 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-02-15 08:02:50 +01:00
|
|
|
|
2021-06-02 09:53:37 +03:00
|
|
|
|
|
|
|
|
|
2015-01-13 17:20:04 +01:00
|
|
|
|
|
|
|
|
|
2021-06-02 09:53:37 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-11-22 14:06:22 +01:00
|
|
|
|
2021-06-02 09:53:37 +03:00
|
|
|
|
2021-11-22 14:06:22 +01:00
|
|
|
|
2021-06-02 09:53:37 +03:00
|
|
|
|
|
|
|
|
|
2021-07-21 12:16:26 +02:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-01-13 17:20:04 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
|
|
|
|
|
2010-11-19 14:51:04 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2012-02-07 12:03:37 -06:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-11-19 14:51:04 -08:00
|
|
|
|
|
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2012-02-07 12:03:37 -06:00
|
|
|
|
2010-11-19 14:51:04 -08:00
|
|
|
|
2013-04-26 15:44:36 -05:00
|
|
|
|
|
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
|
|
|
|
|
2012-07-13 20:35:12 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-11-05 13:16:52 +01:00
|
|
|
|
2012-07-13 20:35:12 -05:00
|
|
|
|
|
|
|
|
|
2010-11-19 14:51:04 -08:00
|
|
|
|
|
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2012-02-07 12:03:37 -06:00
|
|
|
|
2010-11-19 14:51:04 -08:00
|
|
|
|
2013-04-26 15:44:36 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-12-13 15:28:57 +02:00
|
|
|
|
2013-04-26 15:44:36 -05:00
|
|
|
|
2013-12-13 15:28:57 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-11-19 14:51:04 -08:00
|
|
|
|
|
|
|
|
|
2016-08-18 18:38:43 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-11-19 14:51:04 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-02-07 12:03:37 -06:00
|
|
|
|
2010-11-19 14:51:04 -08:00
|
|
|
|
2012-01-24 10:08:37 -06:00
|
|
|
|
2016-08-12 14:59:58 +02:00
|
|
|
|
2010-11-19 14:51:04 -08:00
|
|
|
|
|
|
|
|
|
2016-08-18 18:38:43 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-18 18:38:45 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-09-03 13:24:11 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-18 18:38:45 +02:00
|
|
|
|
2010-11-19 14:51:04 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-02-07 12:03:37 -06:00
|
|
|
|
2010-11-19 14:51:04 -08:00
|
|
|
|
2012-10-25 23:34:41 -05:00
|
|
|
|
2010-11-19 14:51:04 -08:00
|
|
|
|
|
|
|
|
|
2012-07-12 10:46:35 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-10-25 23:34:41 -05:00
|
|
|
|
2013-04-26 15:44:36 -05:00
|
|
|
|
2012-07-12 10:46:35 -05:00
|
|
|
|
|
|
|
|
|
2018-07-03 15:28:43 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-11-19 14:51:04 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-02-07 12:03:37 -06:00
|
|
|
|
2010-11-19 14:51:04 -08:00
|
|
|
|
2012-10-30 19:40:33 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-11-19 14:51:04 -08:00
|
|
|
|
|
|
|
|
|
2012-07-10 20:30:11 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-10-25 23:34:41 -05:00
|
|
|
|
2012-07-10 20:30:11 -05:00
|
|
|
|
|
|
|
|
|
2012-07-13 20:35:12 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-11-19 14:51:04 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-02-07 12:03:37 -06:00
|
|
|
|
2010-11-19 14:51:04 -08:00
|
|
|
|
2012-10-25 23:34:41 -05:00
|
|
|
|
2010-11-19 14:51:04 -08:00
|
|
|
|
|
|
|
|
|
2016-08-18 18:38:44 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-10-25 23:34:42 -05:00
|
|
|
|
2014-07-22 21:53:07 +04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-10-25 23:34:42 -05:00
|
|
|
|
|
|
|
|
|
2014-07-22 21:53:07 +04:00
|
|
|
|
|
|
|
|
|
2012-10-25 23:34:42 -05:00
|
|
|
|
|
|
|
|
|
2014-07-22 21:53:07 +04:00
|
|
|
|
2012-10-25 23:34:42 -05:00
|
|
|
|
2014-07-22 21:53:07 +04:00
|
|
|
|
2012-10-25 23:34:42 -05:00
|
|
|
|
|
|
|
|
|
2014-07-22 21:53:07 +04:00
|
|
|
|
|
|
|
|
|
2012-10-25 23:34:42 -05:00
|
|
|
|
2014-07-22 21:53:07 +04:00
|
|
|
|
|
|
|
|
|
2018-08-22 17:26:10 +02:00
|
|
|
|
2014-07-22 21:53:07 +04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-22 17:26:10 +02:00
|
|
|
|
2014-07-22 21:53:07 +04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-10-25 23:34:42 -05:00
|
|
|
|
2014-07-22 21:53:07 +04:00
|
|
|
|
2012-10-25 23:34:42 -05:00
|
|
|
|
|
|
|
|
|
2010-11-19 14:51:04 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-02-07 12:03:37 -06:00
|
|
|
|
2012-07-25 09:32:41 -05:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2020-09-03 13:24:11 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-04-30 00:44:33 -05:00
|
|
|
|
2013-05-06 07:40:30 -05:00
|
|
|
|
2014-07-23 17:11:20 +04:00
|
|
|
|
2012-07-25 09:32:41 -05:00
|
|
|
|
2014-07-23 17:11:20 +04:00
|
|
|
|
2010-11-19 14:51:04 -08:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2018-05-24 13:38:59 -06:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-07-03 15:28:43 +02:00
|
|
|
|
2018-05-24 13:38:59 -06:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-11-19 14:51:04 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-07-13 20:35:12 -05:00
|
|
|
|
2010-11-19 14:51:04 -08:00
|
|
|
|
2013-12-13 15:28:57 +02:00
|
|
|
|
2016-08-18 18:38:43 +02:00
|
|
|
|
2010-11-19 14:51:04 -08:00
|
|
|
|
2016-08-18 18:38:43 +02:00
|
|
|
|
2016-08-18 18:38:45 +02:00
|
|
|
|
2010-11-19 14:51:04 -08:00
|
|
|
|
2012-07-12 10:46:35 -05:00
|
|
|
|
2018-07-03 15:28:43 +02:00
|
|
|
|
2010-11-19 14:51:04 -08:00
|
|
|
|
2012-07-10 20:30:11 -05:00
|
|
|
|
2010-11-19 14:51:04 -08:00
|
|
|
|
2016-08-18 18:38:44 +02:00
|
|
|
|
2012-10-25 23:34:42 -05:00
|
|
|
|
2010-11-19 14:51:04 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-10-16 20:11:25 +02:00
|
|
|
|
2010-11-19 14:51:04 -08:00
|
|
|
|
2017-02-11 12:14:38 +05:30
|
|
|
|
2010-11-19 14:51:04 -08:00
|
|
|
|
|
|
|
|
|
2015-10-16 20:11:25 +02:00
|
|
|
|
2010-11-19 14:51:04 -08:00
|
|
|
|
|
|
|
|
|
2012-10-26 17:25:24 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2026-02-21 16:37:42 -08:00
|
|
|
|
2012-10-26 17:25:24 -05:00
|
|
|
|
|
|
|
|
|
2014-07-23 17:11:20 +04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-10-26 17:25:24 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-07-03 15:28:43 +02:00
|
|
|
|
2012-10-26 17:25:24 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-12 15:45:52 +02:00
|
|
|
|
2015-10-16 17:09:24 +02:00
|
|
|
|
2016-08-12 16:11:41 +02:00
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
2015-10-16 17:09:24 +02:00
|
|
|
|
2016-04-29 20:01:25 +02:00
|
|
|
|
2016-08-05 16:15:38 +02:00
|
|
|
|
2016-08-18 18:38:45 +02:00
|
|
|
|
2016-04-29 20:01:25 +02:00
|
|
|
|
2015-10-16 17:09:24 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-12 15:45:52 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-01-15 21:37:47 +01:00
|
|
|
|
2016-08-12 15:45:52 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-10-16 17:09:24 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-02-24 18:48:54 +01:00
|
|
|
|
2012-10-25 23:34:42 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2026-02-21 16:37:42 -08:00
|
|
|
|
2012-10-25 23:34:42 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-01-25 18:16:22 +01:00
|
|
|
|
2016-04-29 20:01:25 +02:00
|
|
|
|
2017-01-25 18:16:21 +01:00
|
|
|
|
2018-07-03 15:28:43 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-04-29 20:01:25 +02:00
|
|
|
|
2016-08-12 16:11:41 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-05-30 16:07:48 +02:00
|
|
|
|
2019-06-06 17:14:49 +02:00
|
|
|
|
2019-05-30 16:07:48 +02:00
|
|
|
|
2019-06-06 17:14:49 +02:00
|
|
|
|
2024-07-23 17:54:39 +02:00
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
2019-06-05 19:25:11 +02:00
|
|
|
|
2016-08-12 16:40:02 +02:00
|
|
|
|
2015-10-16 17:09:24 +02:00
|
|
|
|
|
|
|
|
|
2026-04-24 12:39:31 +02:00
|
|
|
|
2015-10-16 17:09:24 +02:00
|
|
|
|
|
|
|
|
|
2012-10-25 23:34:42 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-12 15:45:52 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-02-24 18:48:54 +01:00
|
|
|
|
2016-08-12 15:45:52 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-01-15 21:37:47 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-12 15:45:52 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-02-24 18:48:54 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-12 15:45:52 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-01-15 21:37:47 +01:00
|
|
|
|
2016-08-12 15:45:52 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-10-25 23:34:42 -05:00
|
|
|
|
|
|
|
|
|
2015-10-16 17:09:24 +02:00
|
|
|
|
|
|
|
|
|
2012-10-25 23:34:42 -05:00
|
|
|
|
|
|
|
|
|
2012-07-03 16:01:19 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-01-25 18:16:21 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-01-19 00:30:28 -06:00
|
|
|
|
2012-07-03 16:01:19 -05:00
|
|
|
|
|
|
|
|
|
2013-04-21 12:14:45 -05:00
|
|
|
|
|
|
|
|
|
2012-07-03 16:01:19 -05:00
|
|
|
|
2013-08-28 17:08:10 -07:00
|
|
|
|
2013-04-25 15:09:41 -05:00
|
|
|
|
2013-08-28 17:08:10 -07:00
|
|
|
|
|
|
|
|
|
2012-07-03 16:01:19 -05:00
|
|
|
|
|
|
|
|
|
2013-08-28 17:08:10 -07:00
|
|
|
|
|
|
|
|
|
2013-04-21 12:14:45 -05:00
|
|
|
|
2012-07-03 16:01:19 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-09-19 20:41:47 +02:00
|
|
|
|
|
|
|
|
|
2012-07-03 16:01:19 -05:00
|
|
|
|
2019-08-09 07:05:27 +00:00
|
|
|
|
2012-07-03 16:01:19 -05:00
|
|
|
|
2023-09-19 20:41:47 +02:00
|
|
|
|
2012-07-03 16:01:19 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-08-09 07:05:27 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-07-03 16:01:19 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-01-25 18:16:21 +01:00
|
|
|
|
|
|
|
|
|
2019-08-09 07:05:27 +00:00
|
|
|
|
2013-01-19 00:30:28 -06:00
|
|
|
|
2012-07-03 16:01:19 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-09-19 20:41:47 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-04-21 12:14:45 -05:00
|
|
|
|
2012-07-03 16:01:19 -05:00
|
|
|
|
2023-09-19 20:41:47 +02:00
|
|
|
|
|
|
|
|
|
2012-07-03 16:01:19 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-07-03 16:01:19 -05:00
|
|
|
|
2019-11-05 15:38:46 +01:00
|
|
|
|
2012-07-03 16:01:19 -05:00
|
|
|
|
2019-11-05 15:38:46 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-07-03 16:01:19 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-04-21 12:14:45 -05:00
|
|
|
|
2016-04-13 14:15:50 +02:00
|
|
|
|
2012-07-03 16:01:19 -05:00
|
|
|
|
|
|
|
|
|
2019-11-05 15:38:46 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-01-25 18:16:21 +01:00
|
|
|
|
|
|
|
|
|
2019-11-05 15:38:46 +01:00
|
|
|
|
2017-01-25 18:16:21 +01:00
|
|
|
|
2013-01-19 00:30:28 -06:00
|
|
|
|
2012-07-03 16:01:19 -05:00
|
|
|
|
|
|
|
|
|
2013-04-21 12:14:45 -05:00
|
|
|
|
|
|
|
|
|
2012-10-09 13:50:17 -07:00
|
|
|
|
2016-04-13 14:15:50 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-11-01 08:39:26 -05:00
|
|
|
|
2016-04-13 14:15:50 +02:00
|
|
|
|
2012-10-09 13:50:17 -07:00
|
|
|
|
2012-07-03 16:01:19 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-04-21 12:14:45 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-07-03 16:01:19 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-05 19:25:11 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-22 17:11:27 +02:00
|
|
|
|
|
|
|
|
|
2018-08-22 17:26:10 +02:00
|
|
|
|
2018-08-22 17:11:27 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-22 17:26:10 +02:00
|
|
|
|
2018-08-22 17:11:27 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-09-20 18:38:26 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-22 17:26:10 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-14 18:16:51 +02:00
|
|
|
|
2018-08-22 17:26:10 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-14 18:16:51 +02:00
|
|
|
|
2018-08-22 17:26:10 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-09-20 18:38:26 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-22 17:26:10 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-22 17:11:27 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-14 18:16:51 +02:00
|
|
|
|
2018-08-22 17:11:27 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-22 17:26:10 +02:00
|
|
|
|
2018-08-22 17:11:27 +02:00
|
|
|
|
|
|
|
|
|
2023-09-20 18:38:26 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-22 17:11:27 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-09-20 18:38:26 +02:00
|
|
|
|
|
|
|
|
|
2018-08-22 17:11:27 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-22 17:26:10 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-22 17:11:27 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-09-20 18:38:26 +02:00
|
|
|
|
2012-10-25 23:34:42 -05:00
|
|
|
|
|
|
|
|
|
2018-08-22 17:11:27 +02:00
|
|
|
|
2012-10-25 23:34:42 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-09-20 18:38:26 +02:00
|
|
|
|
2018-08-22 17:11:27 +02:00
|
|
|
|
2012-10-25 23:34:42 -05:00
|
|
|
|
|
|
|
|
|
2023-09-20 18:38:26 +02:00
|
|
|
|
2012-10-25 23:34:42 -05:00
|
|
|
|
|
|
|
|
|
2012-11-14 12:25:19 -06:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-22 17:11:27 +02:00
|
|
|
|
2014-07-11 12:11:20 +04:00
|
|
|
|
2018-08-22 17:11:27 +02:00
|
|
|
|
2013-04-21 12:14:45 -05:00
|
|
|
|
2013-04-26 09:43:47 -05:00
|
|
|
|
2012-11-14 12:25:19 -06:00
|
|
|
|
2013-05-29 11:18:59 -05:00
|
|
|
|
2023-09-20 18:38:26 +02:00
|
|
|
|
|
|
|
|
|
2013-05-29 11:18:59 -05:00
|
|
|
|
2023-09-20 18:38:26 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-05-29 11:18:59 -05:00
|
|
|
|
2023-09-20 18:38:26 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-05-29 11:18:59 -05:00
|
|
|
|
|
|
|
|
|
2023-09-20 18:38:26 +02:00
|
|
|
|
|
|
|
|
|
2013-05-29 11:18:59 -05:00
|
|
|
|
2023-09-20 18:38:26 +02:00
|
|
|
|
|
|
|
|
|
2018-08-22 17:11:27 +02:00
|
|
|
|
2015-01-19 22:57:39 +03:00
|
|
|
|
2012-10-25 23:34:42 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-09-20 18:38:26 +02:00
|
|
|
|
2012-10-25 23:34:42 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-09-19 20:41:47 +02:00
|
|
|
|
|
|
|
|
|
2013-04-21 12:14:45 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-01-25 18:16:21 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-04-21 12:14:45 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-09-19 20:41:47 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-04-21 12:14:45 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-09-19 20:41:47 +02:00
|
|
|
|
2017-01-25 18:16:22 +01:00
|
|
|
|
2023-09-19 20:41:47 +02:00
|
|
|
|
2017-01-25 18:16:22 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-09-19 20:41:47 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-01-25 18:16:22 +01:00
|
|
|
|
|
|
|
|
|
2023-09-19 20:41:47 +02:00
|
|
|
|
2017-01-25 18:16:22 +01:00
|
|
|
|
|
|
|
|
|
2023-09-19 20:41:47 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-01-25 18:16:22 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-10-30 19:40:33 -05:00
|
|
|
|
|
|
|
|
|
2017-01-25 18:16:21 +01:00
|
|
|
|
2012-10-30 19:40:33 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-11-01 08:39:26 -05:00
|
|
|
|
|
|
|
|
|
2012-10-30 19:40:33 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-04-21 12:14:45 -05:00
|
|
|
|
2013-04-21 12:14:45 -05:00
|
|
|
|
2012-10-30 19:40:33 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-01-25 18:16:21 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-10-30 19:40:33 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-04-25 15:09:42 -05:00
|
|
|
|
|
|
|
|
|
2012-10-30 19:40:33 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-04-30 00:44:33 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-08-29 19:16:42 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-04-30 00:44:33 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-10-30 19:40:33 -05:00
|
|
|
|
2014-07-23 17:11:20 +04:00
|
|
|
|
2012-10-30 19:40:33 -05:00
|
|
|
|
2014-07-23 17:11:20 +04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-10-30 19:40:33 -05:00
|
|
|
|
2013-04-26 09:43:48 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-10-30 19:40:33 -05:00
|
|
|
|
|
|
|
|
|
2014-07-23 17:11:20 +04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-10-30 19:40:33 -05:00
|
|
|
|
2013-04-26 09:43:48 -05:00
|
|
|
|
2012-10-30 19:40:33 -05:00
|
|
|
|
2013-04-26 09:43:48 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-11-01 10:17:15 -05:00
|
|
|
|
|
|
|
|
|
2013-04-26 09:43:48 -05:00
|
|
|
|
|
|
|
|
|
2012-10-30 19:40:33 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-04-26 09:43:48 -05:00
|
|
|
|
|
|
|
|
|
2012-11-01 10:17:15 -05:00
|
|
|
|
2012-10-30 19:40:33 -05:00
|
|
|
|
2014-07-23 17:11:20 +04:00
|
|
|
|
2012-10-30 19:40:33 -05:00
|
|
|
|
2013-04-26 09:43:48 -05:00
|
|
|
|
2013-09-04 17:57:31 -07:00
|
|
|
|
|
|
|
|
|
2012-10-30 19:40:33 -05:00
|
|
|
|
2013-04-26 09:43:48 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-10-30 19:40:33 -05:00
|
|
|
|
|
|
|
|
|
2014-07-23 17:11:20 +04:00
|
|
|
|
2012-10-30 19:40:33 -05:00
|
|
|
|
2013-04-26 09:43:48 -05:00
|
|
|
|
|
|
|
|
|
2012-10-30 19:40:33 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-09-19 20:41:47 +02:00
|
|
|
|
|
|
|
|
|
2012-07-03 16:01:19 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-01-25 18:16:21 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-01-19 00:30:28 -06:00
|
|
|
|
2012-07-03 16:01:19 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-04-21 12:14:45 -05:00
|
|
|
|
|
|
|
|
|
2012-07-03 16:01:19 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2026-05-29 18:12:55 -07:00
|
|
|
|
2012-07-03 16:01:19 -05:00
|
|
|
|
2026-05-29 18:12:55 -07:00
|
|
|
|
2012-07-03 16:01:19 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-04-26 09:43:47 -05:00
|
|
|
|
2012-07-03 16:01:19 -05:00
|
|
|
|
2013-04-30 00:44:32 -05:00
|
|
|
|
2012-07-03 16:01:19 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-09-19 20:41:47 +02:00
|
|
|
|
2012-07-03 16:01:19 -05:00
|
|
|
|
2013-04-21 12:14:45 -05:00
|
|
|
|
2012-07-03 16:01:19 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-04-21 12:14:45 -05:00
|
|
|
|
2012-07-03 16:01:19 -05:00
|
|
|
|
|
|
|
|
|
2013-04-30 00:44:33 -05:00
|
|
|
|
|
|
|
|
|
2012-07-03 16:01:19 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-04-30 00:44:33 -05:00
|
|
|
|
2012-07-03 16:01:19 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-04-30 00:44:33 -05:00
|
|
|
|
2017-01-25 18:16:21 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-01-19 00:30:28 -06:00
|
|
|
|
2013-04-25 15:09:42 -05:00
|
|
|
|
|
|
|
|
|
2012-07-03 16:01:19 -05:00
|
|
|
|
2013-04-25 15:09:42 -05:00
|
|
|
|
2012-07-03 16:01:19 -05:00
|
|
|
|
|
|
|
|
|
2013-04-25 15:09:42 -05:00
|
|
|
|
2012-10-25 23:34:41 -05:00
|
|
|
|
2013-04-25 15:09:42 -05:00
|
|
|
|
2012-07-03 16:01:19 -05:00
|
|
|
|
|
|
|
|
|
2013-04-25 15:09:42 -05:00
|
|
|
|
2013-04-30 00:44:33 -05:00
|
|
|
|
2012-07-03 16:01:19 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-04-25 15:09:42 -05:00
|
|
|
|
2012-07-03 16:01:19 -05:00
|
|
|
|
|
|
|
|
|
2023-09-19 20:41:47 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-08-31 17:29:55 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-09-19 20:41:47 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-06-12 14:43:10 -07:00
|
|
|
|
2013-05-31 17:40:45 -05:00
|
|
|
|
2013-06-12 14:43:10 -07:00
|
|
|
|
2013-05-06 09:51:30 -05:00
|
|
|
|
2023-09-19 20:41:47 +02:00
|
|
|
|
2013-05-06 09:51:30 -05:00
|
|
|
|
2013-05-31 17:40:45 -05:00
|
|
|
|
2013-05-06 09:51:30 -05:00
|
|
|
|
|
|
|
|
|
2023-09-19 20:41:47 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-08-31 17:29:55 -05:00
|
|
|
|
2023-09-19 20:41:47 +02:00
|
|
|
|
2012-08-31 17:29:55 -05:00
|
|
|
|
|
|
|
|
|
2023-09-19 20:41:47 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-07-23 17:11:19 +04:00
|
|
|
|
|
|
|
|
|
2023-09-19 20:41:47 +02:00
|
|
|
|
2014-07-23 17:11:19 +04:00
|
|
|
|
|
|
|
|
|
2023-09-19 20:41:47 +02:00
|
|
|
|
2014-07-23 17:11:19 +04:00
|
|
|
|
2023-09-19 20:41:47 +02:00
|
|
|
|
2014-07-23 17:11:19 +04:00
|
|
|
|
|
|
|
|
|
2012-02-02 08:13:30 -06:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-02-07 12:03:37 -06:00
|
|
|
|
|
|
|
|
|
2012-02-02 08:13:30 -06:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-11-27 17:21:04 +00:00
|
|
|
|
2012-02-02 08:13:30 -06:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-07-09 21:04:23 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-11-01 08:39:27 -05:00
|
|
|
|
2012-07-09 21:04:23 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-03-25 16:38:32 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-12-20 23:43:32 -05:00
|
|
|
|
2019-03-25 16:38:32 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-09-07 07:23:15 -04:00
|
|
|
|
2019-03-25 16:38:32 +00:00
|
|
|
|
|
|
|
|
|
2019-12-20 23:43:32 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-03-25 16:38:32 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-12-20 23:43:32 -05:00
|
|
|
|
|
|
|
|
|
2019-03-25 16:38:32 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-05-29 20:51:23 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-03-25 16:38:32 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-12-20 23:43:32 -05:00
|
|
|
|
2019-03-25 16:38:32 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-12-17 14:15:04 -05:00
|
|
|
|
2019-03-25 16:38:32 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-12-17 14:15:04 -05:00
|
|
|
|
2019-03-25 16:38:32 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-02-02 08:13:30 -06:00
|
|
|
|
2012-10-25 23:34:42 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-07-12 10:46:35 -05:00
|
|
|
|
2012-10-25 23:34:42 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-02-02 08:13:30 -06:00
|
|
|
|
2012-10-25 23:34:42 -05:00
|
|
|
|
2012-10-25 23:34:41 -05:00
|
|
|
|
2012-10-25 23:34:42 -05:00
|
|
|
|
|
|
|
|
|
2012-02-02 08:13:30 -06:00
|
|
|
|
2012-07-12 10:46:35 -05:00
|
|
|
|
2012-10-25 23:34:42 -05:00
|
|
|
|
2012-10-25 23:34:41 -05:00
|
|
|
|
2013-04-26 09:43:47 -05:00
|
|
|
|
2012-10-25 23:34:41 -05:00
|
|
|
|
2019-03-25 16:38:32 +00:00
|
|
|
|
2012-10-25 23:34:41 -05:00
|
|
|
|
2012-02-02 08:13:30 -06:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-02-02 08:13:30 -06:00
|
|
|
|
2012-11-01 10:17:15 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-10-25 23:34:41 -05:00
|
|
|
|
2019-03-25 16:38:32 +00:00
|
|
|
|
2012-02-02 08:13:30 -06:00
|
|
|
|
2012-02-02 08:13:30 -06:00
|
|
|
|
2012-10-25 23:34:41 -05:00
|
|
|
|
2012-10-25 23:34:41 -05:00
|
|
|
|
|
|
|
|
|
2012-10-25 23:34:41 -05:00
|
|
|
|
2012-11-01 10:17:15 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-02-02 08:13:30 -06:00
|
|
|
|
2018-07-03 15:28:43 +02:00
|
|
|
|
|
|
|
|
|
2012-10-25 23:34:41 -05:00
|
|
|
|
2012-10-25 23:34:42 -05:00
|
|
|
|
2018-07-03 15:28:43 +02:00
|
|
|
|
|
|
|
|
|
2012-10-25 23:34:42 -05:00
|
|
|
|
2018-07-03 15:28:43 +02:00
|
|
|
|
2012-11-01 10:17:15 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-02-02 08:13:30 -06:00
|
|
|
|
2018-07-03 15:28:43 +02:00
|
|
|
|
|
|
|
|
|
2012-10-25 23:34:41 -05:00
|
|
|
|
2018-07-03 15:28:43 +02:00
|
|
|
|
2012-11-01 10:17:15 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-07-03 16:01:19 -05:00
|
|
|
|
2012-10-25 23:34:41 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-08-31 17:29:52 -05:00
|
|
|
|
2012-07-09 21:04:24 -05:00
|
|
|
|
2012-08-31 17:29:52 -05:00
|
|
|
|
|
|
|
|
|
2012-10-25 23:34:41 -05:00
|
|
|
|
2012-10-25 23:34:41 -05:00
|
|
|
|
2012-10-25 23:34:41 -05:00
|
|
|
|
2012-07-09 21:04:24 -05:00
|
|
|
|
2013-04-26 09:43:47 -05:00
|
|
|
|
|
|
|
|
|
2012-10-25 23:34:41 -05:00
|
|
|
|
2013-04-26 09:43:47 -05:00
|
|
|
|
2018-07-03 15:28:43 +02:00
|
|
|
|
2012-10-25 23:34:41 -05:00
|
|
|
|
2019-03-25 16:38:32 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-10-25 23:34:41 -05:00
|
|
|
|
2012-02-02 08:13:30 -06:00
|
|
|
|
2026-02-21 16:37:42 -08:00
|
|
|
|
2018-07-03 15:28:43 +02:00
|
|
|
|
2012-10-25 23:34:41 -05:00
|
|
|
|
|
|
|
|
|
2018-07-03 15:28:43 +02:00
|
|
|
|
|
|
|
|
|
2019-01-30 15:14:48 +01:00
|
|
|
|
2018-07-03 15:28:43 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-07-12 10:46:35 -05:00
|
|
|
|
2021-07-14 15:35:50 +05:30
|
|
|
|
|
|
|
|
|
2019-03-25 16:38:32 +00:00
|
|
|
|
2012-10-25 23:34:41 -05:00
|
|
|
|
2012-10-25 23:34:42 -05:00
|
|
|
|
2019-03-25 16:38:32 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-07-03 15:28:43 +02:00
|
|
|
|
|
|
|
|
|
2019-03-25 16:38:32 +00:00
|
|
|
|
2012-10-25 23:34:41 -05:00
|
|
|
|
2019-03-25 16:38:32 +00:00
|
|
|
|
2012-10-25 23:34:41 -05:00
|
|
|
|
2012-10-25 23:34:41 -05:00
|
|
|
|
2012-07-12 10:46:35 -05:00
|
|
|
|
2018-07-03 15:28:43 +02:00
|
|
|
|
2019-03-25 16:38:32 +00:00
|
|
|
|
2018-07-03 15:28:43 +02:00
|
|
|
|
2012-10-25 23:34:41 -05:00
|
|
|
|
2012-10-25 23:34:41 -05:00
|
|
|
|
2012-02-02 08:13:30 -06:00
|
|
|
|
|
|
|
|
|
2017-04-13 12:17:39 +02:00
|
|
|
|
|
|
|
|
|
2026-05-19 23:07:26 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-04-13 12:17:39 +02:00
|
|
|
|
|
|
|
|
|
2019-05-30 16:07:48 +02:00
|
|
|
|
2017-04-13 12:17:39 +02:00
|
|
|
|
2026-05-19 23:07:26 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-04-13 12:17:39 +02:00
|
|
|
|
|
|
|
|
|
2019-06-06 17:14:49 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-04-13 12:17:39 +02:00
|
|
|
|
|
|
|
|
|
2019-06-06 17:14:49 +02:00
|
|
|
|
2018-04-04 10:15:38 +02:00
|
|
|
|
2017-04-13 12:17:39 +02:00
|
|
|
|
2019-06-06 17:14:49 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-04-13 12:17:39 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-11-12 19:41:48 +01:00
|
|
|
|
2019-06-06 17:14:49 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
rbd: cancel lock_dwork if the wait is interrupted
There is a warning message in my test with below steps:
# rbd bench --io-type write --io-size 4K --io-threads 1 --io-pattern rand test &
# sleep 5
# pkill -9 rbd
# rbd map test &
# sleep 5
# pkill rbd
The reason is that the rbd_add_acquire_lock() is interruptable,
that means, when we kill the waiting on ->acquire_wait, the lock_dwork
could be still running.
1. do_rbd_add() 2. lock_dwork
rbd_add_acquire_lock()
- queue_delayed_work()
lock_dwork queued
- wait_for_completion_killable_timeout() <-- kill happen
rbd_dev_image_unlock() <-- UNLOCKED now, nothing to do.
rbd_dev_device_release()
rbd_dev_image_release()
- ...
lock successed here
- cancel_delayed_work_sync(&rbd_dev->lock_dwork)
Then when we reach the rbd_dev_free(), WARN_ON is triggered because
lock_state is not RBD_LOCK_STATE_UNLOCKED.
To fix it, this commit make sure the lock_dwork was finished before
calling rbd_dev_image_unlock().
On the other hand, this would not happend in do_rbd_remove(), because
after rbd mapped, lock_dwork will only be queued for IO request, and
request will continue unless lock_dwork finished. when we call
rbd_dev_image_unlock() in do_rbd_remove(), all requests are done.
That means, lock_state should not be locked again after
rbd_dev_image_unlock().
[ Cancel lock_dwork in rbd_add_acquire_lock(), only if the wait is
interrupted. ]
Fixes: 637cd060537d ("rbd: new exclusive lock wait/wake code")
Signed-off-by: Dongsheng Yang <dongsheng.yang@easystack.cn>
Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
2019-09-27 15:33:22 +00:00
|
|
|
|
2019-06-06 17:14:49 +02:00
|
|
|
|
rbd: cancel lock_dwork if the wait is interrupted
There is a warning message in my test with below steps:
# rbd bench --io-type write --io-size 4K --io-threads 1 --io-pattern rand test &
# sleep 5
# pkill -9 rbd
# rbd map test &
# sleep 5
# pkill rbd
The reason is that the rbd_add_acquire_lock() is interruptable,
that means, when we kill the waiting on ->acquire_wait, the lock_dwork
could be still running.
1. do_rbd_add() 2. lock_dwork
rbd_add_acquire_lock()
- queue_delayed_work()
lock_dwork queued
- wait_for_completion_killable_timeout() <-- kill happen
rbd_dev_image_unlock() <-- UNLOCKED now, nothing to do.
rbd_dev_device_release()
rbd_dev_image_release()
- ...
lock successed here
- cancel_delayed_work_sync(&rbd_dev->lock_dwork)
Then when we reach the rbd_dev_free(), WARN_ON is triggered because
lock_state is not RBD_LOCK_STATE_UNLOCKED.
To fix it, this commit make sure the lock_dwork was finished before
calling rbd_dev_image_unlock().
On the other hand, this would not happend in do_rbd_remove(), because
after rbd mapped, lock_dwork will only be queued for IO request, and
request will continue unless lock_dwork finished. when we call
rbd_dev_image_unlock() in do_rbd_remove(), all requests are done.
That means, lock_state should not be locked again after
rbd_dev_image_unlock().
[ Cancel lock_dwork in rbd_add_acquire_lock(), only if the wait is
interrupted. ]
Fixes: 637cd060537d ("rbd: new exclusive lock wait/wake code")
Signed-off-by: Dongsheng Yang <dongsheng.yang@easystack.cn>
Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
2019-09-27 15:33:22 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-06 17:14:49 +02:00
|
|
|
|
2023-08-01 19:14:24 +02:00
|
|
|
|
2017-04-13 12:17:39 +02:00
|
|
|
|
2023-08-01 19:14:24 +02:00
|
|
|
|
|
|
|
|
|
2017-04-13 12:17:39 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-07-10 20:30:11 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-01-25 18:16:21 +01:00
|
|
|
|
2012-07-10 20:30:11 -05:00
|
|
|
|
2013-04-25 23:15:08 -05:00
|
|
|
|
2012-10-30 19:40:33 -05:00
|
|
|
|
2012-10-30 19:40:33 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-04-25 23:15:08 -05:00
|
|
|
|
|
|
|
|
|
2012-10-30 19:40:33 -05:00
|
|
|
|
2013-04-25 23:15:08 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-10-30 19:40:33 -05:00
|
|
|
|
2013-04-25 23:15:08 -05:00
|
|
|
|
2012-10-30 19:40:33 -05:00
|
|
|
|
2012-07-10 20:30:11 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-01-25 18:16:21 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-07-10 20:30:11 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-04-25 23:15:08 -05:00
|
|
|
|
|
|
|
|
|
2017-01-25 18:16:21 +01:00
|
|
|
|
|
|
|
|
|
2019-08-09 07:05:27 +00:00
|
|
|
|
2013-01-19 00:30:28 -06:00
|
|
|
|
2013-04-25 23:15:08 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-09-11 18:49:18 +04:00
|
|
|
|
2013-04-25 23:15:08 -05:00
|
|
|
|
2012-07-10 20:30:11 -05:00
|
|
|
|
2013-04-25 23:15:08 -05:00
|
|
|
|
2012-11-01 08:39:26 -05:00
|
|
|
|
2014-04-11 16:38:12 +08:00
|
|
|
|
2013-04-25 23:15:08 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-07-10 20:30:11 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-01-25 18:16:21 +01:00
|
|
|
|
2012-07-10 20:30:11 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-05-13 20:35:37 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-04-28 23:32:34 -05:00
|
|
|
|
|
|
|
|
|
2015-01-19 12:06:14 +03:00
|
|
|
|
2019-06-05 19:25:11 +02:00
|
|
|
|
2019-06-17 15:29:49 +02:00
|
|
|
|
2013-04-28 23:32:34 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-09-19 20:41:47 +02:00
|
|
|
|
2013-04-28 23:32:34 -05:00
|
|
|
|
|
|
|
|
|
2023-09-19 20:41:47 +02:00
|
|
|
|
|
|
|
|
|
2012-07-10 20:30:11 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-09-19 20:41:47 +02:00
|
|
|
|
2013-04-21 12:14:45 -05:00
|
|
|
|
2023-09-19 20:41:47 +02:00
|
|
|
|
2012-07-03 16:01:19 -05:00
|
|
|
|
2013-05-06 09:51:30 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-09-19 20:41:47 +02:00
|
|
|
|
|
|
|
|
|
2013-04-21 12:14:45 -05:00
|
|
|
|
2023-09-19 20:41:47 +02:00
|
|
|
|
2012-07-03 16:01:19 -05:00
|
|
|
|
2013-04-21 12:14:45 -05:00
|
|
|
|
|
|
|
|
|
2023-09-19 20:41:47 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-01-25 18:16:22 +01:00
|
|
|
|
2023-09-19 20:41:47 +02:00
|
|
|
|
2017-01-25 18:16:22 +01:00
|
|
|
|
|
|
|
|
|
2023-09-19 20:41:47 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-01-25 18:16:22 +01:00
|
|
|
|
2023-09-19 20:41:47 +02:00
|
|
|
|
2012-07-10 20:30:11 -05:00
|
|
|
|
|
|
|
|
|
2015-10-11 19:38:00 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-10-30 15:47:17 -05:00
|
|
|
|
2012-10-30 19:40:33 -05:00
|
|
|
|
2013-04-26 15:44:36 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-10-11 19:38:00 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-02-24 18:48:54 +01:00
|
|
|
|
2015-10-11 19:38:00 +02:00
|
|
|
|
|
|
|
|
|
2013-04-26 15:44:36 -05:00
|
|
|
|
2015-10-11 19:38:00 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-02-24 18:48:54 +01:00
|
|
|
|
|
|
|
|
|
2013-04-26 15:44:36 -05:00
|
|
|
|
2019-11-07 17:16:23 +01:00
|
|
|
|
|
|
|
|
|
2015-10-11 19:38:00 +02:00
|
|
|
|
2013-04-26 15:44:36 -05:00
|
|
|
|
|
|
|
|
|
2015-10-11 19:38:00 +02:00
|
|
|
|
2013-04-26 15:44:36 -05:00
|
|
|
|
2013-05-08 22:50:04 -05:00
|
|
|
|
2013-04-26 15:44:36 -05:00
|
|
|
|
|
|
|
|
|
2015-10-11 19:38:00 +02:00
|
|
|
|
|
|
|
|
|
2015-11-23 20:16:45 +01:00
|
|
|
|
2013-04-26 15:44:36 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-04-13 12:17:38 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
rbd: fix rbd map vs notify races
A while ago, commit 9875201e1049 ("rbd: fix use-after free of
rbd_dev->disk") fixed rbd unmap vs notify race by introducing
an exported wrapper for flushing notifies and sticking it into
do_rbd_remove().
A similar problem exists on the rbd map path, though: the watch is
registered in rbd_dev_image_probe(), while the disk is set up quite
a few steps later, in rbd_dev_device_setup(). Nothing prevents
a notify from coming in and crashing on a NULL rbd_dev->disk:
BUG: unable to handle kernel NULL pointer dereference at 0000000000000050
Call Trace:
[<ffffffffa0508344>] rbd_watch_cb+0x34/0x180 [rbd]
[<ffffffffa04bd290>] do_event_work+0x40/0xb0 [libceph]
[<ffffffff8109d5db>] process_one_work+0x17b/0x470
[<ffffffff8109e3ab>] worker_thread+0x11b/0x400
[<ffffffff8109e290>] ? rescuer_thread+0x400/0x400
[<ffffffff810a5acf>] kthread+0xcf/0xe0
[<ffffffff810b41b3>] ? finish_task_switch+0x53/0x170
[<ffffffff810a5a00>] ? kthread_create_on_node+0x140/0x140
[<ffffffff81645dd8>] ret_from_fork+0x58/0x90
[<ffffffff810a5a00>] ? kthread_create_on_node+0x140/0x140
RIP [<ffffffffa050828a>] rbd_dev_refresh+0xfa/0x180 [rbd]
If an error occurs during rbd map, we have to error out, potentially
tearing down a watch. Just like on rbd unmap, notifies have to be
flushed, otherwise rbd_watch_cb() may end up trying to read in the
image header after rbd_dev_image_release() has run:
Assertion failure in rbd_dev_header_info() at line 4722:
rbd_assert(rbd_image_format_valid(rbd_dev->image_format));
Call Trace:
[<ffffffff81cccee0>] ? rbd_parent_request_create+0x150/0x150
[<ffffffff81cd4e59>] rbd_dev_refresh+0x59/0x390
[<ffffffff81cd5229>] rbd_watch_cb+0x69/0x290
[<ffffffff81fde9bf>] do_event_work+0x10f/0x1c0
[<ffffffff81107799>] process_one_work+0x689/0x1a80
[<ffffffff811076f7>] ? process_one_work+0x5e7/0x1a80
[<ffffffff81132065>] ? finish_task_switch+0x225/0x640
[<ffffffff81107110>] ? pwq_dec_nr_in_flight+0x2b0/0x2b0
[<ffffffff81108c69>] worker_thread+0xd9/0x1320
[<ffffffff81108b90>] ? process_one_work+0x1a80/0x1a80
[<ffffffff8111b02d>] kthread+0x21d/0x2e0
[<ffffffff8111ae10>] ? kthread_stop+0x550/0x550
[<ffffffff82022802>] ret_from_fork+0x22/0x40
[<ffffffff8111ae10>] ? kthread_stop+0x550/0x550
RIP [<ffffffff81ccd8f9>] rbd_dev_header_info+0xa19/0x1e30
To fix this, a) check if RBD_DEV_FLAG_EXISTS is set before calling
revalidate_disk(), b) move ceph_osdc_flush_notifies() call into
rbd_dev_header_unwatch_sync() to cover rbd map error paths and c) turn
header read-in into a critical section. The latter also happens to
take care of rbd map foo@bar vs rbd snap rm foo@bar race.
Fixes: http://tracker.ceph.com/issues/15490
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Reviewed-by: Josh Durgin <jdurgin@redhat.com>
2016-04-15 16:22:16 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-04-28 23:32:34 -05:00
|
|
|
|
2013-04-26 15:44:36 -05:00
|
|
|
|
2012-10-30 15:47:17 -05:00
|
|
|
|
|
|
|
|
|
rbd: add support for single-major device number allocation scheme
Currently each rbd device is allocated its own major number, which
leads to a hard limit of 230-250 images mapped at once. This commit
adds support for a new single-major device number allocation scheme,
which is hidden behind a new single_major boolean module parameter and
is disabled by default for backwards compatibility reasons. (Old
userspace cannot correctly unmap images mapped under single-major
scheme and would essentially just unmap a random image, if that.)
$ rbd showmapped
id pool image snap device
0 rbd b100 - /dev/rbd0
1 rbd b101 - /dev/rbd1
2 rbd b102 - /dev/rbd2
3 rbd b103 - /dev/rbd3
Old scheme (modprobe rbd):
$ ls -l /dev/rbd*
brw-rw---- 1 root disk 253, 0 Dec 10 12:24 /dev/rbd0
brw-rw---- 1 root disk 252, 0 Dec 10 12:28 /dev/rbd1
brw-rw---- 1 root disk 252, 1 Dec 10 12:28 /dev/rbd1p1
brw-rw---- 1 root disk 252, 2 Dec 10 12:28 /dev/rbd1p2
brw-rw---- 1 root disk 252, 3 Dec 10 12:28 /dev/rbd1p3
brw-rw---- 1 root disk 251, 0 Dec 10 12:28 /dev/rbd2
brw-rw---- 1 root disk 251, 1 Dec 10 12:28 /dev/rbd2p1
brw-rw---- 1 root disk 250, 0 Dec 10 12:24 /dev/rbd3
New scheme (modprobe rbd single_major=Y):
$ ls -l /dev/rbd*
brw-rw---- 1 root disk 253, 0 Dec 10 12:30 /dev/rbd0
brw-rw---- 1 root disk 253, 256 Dec 10 12:30 /dev/rbd1
brw-rw---- 1 root disk 253, 257 Dec 10 12:30 /dev/rbd1p1
brw-rw---- 1 root disk 253, 258 Dec 10 12:30 /dev/rbd1p2
brw-rw---- 1 root disk 253, 259 Dec 10 12:30 /dev/rbd1p3
brw-rw---- 1 root disk 253, 512 Dec 10 12:30 /dev/rbd2
brw-rw---- 1 root disk 253, 513 Dec 10 12:30 /dev/rbd2p1
brw-rw---- 1 root disk 253, 768 Dec 10 12:30 /dev/rbd3
(major 253 was assigned dynamically at module load time)
The new limit is 4096 images mapped at once, and it comes from the fact
that, as before, 256 minor numbers are reserved for each mapping.
(A follow-up commit changes the number of minors reserved and the way
we deal with partitions over that number.)
If single_major is set to true, two new sysfs interfaces show up:
/sys/bus/rbd/{add,remove}_single_major. These are to be used instead
of /sys/bus/rbd/{add,remove}, which are disabled for backwards
compatibility reasons outlined above.
Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
Reviewed-by: Alex Elder <elder@linaro.org>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2013-12-13 15:28:57 +02:00
|
|
|
|
2012-10-30 15:47:17 -05:00
|
|
|
|
rbd: add support for single-major device number allocation scheme
Currently each rbd device is allocated its own major number, which
leads to a hard limit of 230-250 images mapped at once. This commit
adds support for a new single-major device number allocation scheme,
which is hidden behind a new single_major boolean module parameter and
is disabled by default for backwards compatibility reasons. (Old
userspace cannot correctly unmap images mapped under single-major
scheme and would essentially just unmap a random image, if that.)
$ rbd showmapped
id pool image snap device
0 rbd b100 - /dev/rbd0
1 rbd b101 - /dev/rbd1
2 rbd b102 - /dev/rbd2
3 rbd b103 - /dev/rbd3
Old scheme (modprobe rbd):
$ ls -l /dev/rbd*
brw-rw---- 1 root disk 253, 0 Dec 10 12:24 /dev/rbd0
brw-rw---- 1 root disk 252, 0 Dec 10 12:28 /dev/rbd1
brw-rw---- 1 root disk 252, 1 Dec 10 12:28 /dev/rbd1p1
brw-rw---- 1 root disk 252, 2 Dec 10 12:28 /dev/rbd1p2
brw-rw---- 1 root disk 252, 3 Dec 10 12:28 /dev/rbd1p3
brw-rw---- 1 root disk 251, 0 Dec 10 12:28 /dev/rbd2
brw-rw---- 1 root disk 251, 1 Dec 10 12:28 /dev/rbd2p1
brw-rw---- 1 root disk 250, 0 Dec 10 12:24 /dev/rbd3
New scheme (modprobe rbd single_major=Y):
$ ls -l /dev/rbd*
brw-rw---- 1 root disk 253, 0 Dec 10 12:30 /dev/rbd0
brw-rw---- 1 root disk 253, 256 Dec 10 12:30 /dev/rbd1
brw-rw---- 1 root disk 253, 257 Dec 10 12:30 /dev/rbd1p1
brw-rw---- 1 root disk 253, 258 Dec 10 12:30 /dev/rbd1p2
brw-rw---- 1 root disk 253, 259 Dec 10 12:30 /dev/rbd1p3
brw-rw---- 1 root disk 253, 512 Dec 10 12:30 /dev/rbd2
brw-rw---- 1 root disk 253, 513 Dec 10 12:30 /dev/rbd2p1
brw-rw---- 1 root disk 253, 768 Dec 10 12:30 /dev/rbd3
(major 253 was assigned dynamically at module load time)
The new limit is 4096 images mapped at once, and it comes from the fact
that, as before, 256 minor numbers are reserved for each mapping.
(A follow-up commit changes the number of minors reserved and the way
we deal with partitions over that number.)
If single_major is set to true, two new sysfs interfaces show up:
/sys/bus/rbd/{add,remove}_single_major. These are to be used instead
of /sys/bus/rbd/{add,remove}, which are disabled for backwards
compatibility reasons outlined above.
Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
Reviewed-by: Alex Elder <elder@linaro.org>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2013-12-13 15:28:57 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-12 15:45:52 +02:00
|
|
|
|
rbd: add support for single-major device number allocation scheme
Currently each rbd device is allocated its own major number, which
leads to a hard limit of 230-250 images mapped at once. This commit
adds support for a new single-major device number allocation scheme,
which is hidden behind a new single_major boolean module parameter and
is disabled by default for backwards compatibility reasons. (Old
userspace cannot correctly unmap images mapped under single-major
scheme and would essentially just unmap a random image, if that.)
$ rbd showmapped
id pool image snap device
0 rbd b100 - /dev/rbd0
1 rbd b101 - /dev/rbd1
2 rbd b102 - /dev/rbd2
3 rbd b103 - /dev/rbd3
Old scheme (modprobe rbd):
$ ls -l /dev/rbd*
brw-rw---- 1 root disk 253, 0 Dec 10 12:24 /dev/rbd0
brw-rw---- 1 root disk 252, 0 Dec 10 12:28 /dev/rbd1
brw-rw---- 1 root disk 252, 1 Dec 10 12:28 /dev/rbd1p1
brw-rw---- 1 root disk 252, 2 Dec 10 12:28 /dev/rbd1p2
brw-rw---- 1 root disk 252, 3 Dec 10 12:28 /dev/rbd1p3
brw-rw---- 1 root disk 251, 0 Dec 10 12:28 /dev/rbd2
brw-rw---- 1 root disk 251, 1 Dec 10 12:28 /dev/rbd2p1
brw-rw---- 1 root disk 250, 0 Dec 10 12:24 /dev/rbd3
New scheme (modprobe rbd single_major=Y):
$ ls -l /dev/rbd*
brw-rw---- 1 root disk 253, 0 Dec 10 12:30 /dev/rbd0
brw-rw---- 1 root disk 253, 256 Dec 10 12:30 /dev/rbd1
brw-rw---- 1 root disk 253, 257 Dec 10 12:30 /dev/rbd1p1
brw-rw---- 1 root disk 253, 258 Dec 10 12:30 /dev/rbd1p2
brw-rw---- 1 root disk 253, 259 Dec 10 12:30 /dev/rbd1p3
brw-rw---- 1 root disk 253, 512 Dec 10 12:30 /dev/rbd2
brw-rw---- 1 root disk 253, 513 Dec 10 12:30 /dev/rbd2p1
brw-rw---- 1 root disk 253, 768 Dec 10 12:30 /dev/rbd3
(major 253 was assigned dynamically at module load time)
The new limit is 4096 images mapped at once, and it comes from the fact
that, as before, 256 minor numbers are reserved for each mapping.
(A follow-up commit changes the number of minors reserved and the way
we deal with partitions over that number.)
If single_major is set to true, two new sysfs interfaces show up:
/sys/bus/rbd/{add,remove}_single_major. These are to be used instead
of /sys/bus/rbd/{add,remove}, which are disabled for backwards
compatibility reasons outlined above.
Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
Reviewed-by: Alex Elder <elder@linaro.org>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2013-12-13 15:28:57 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-10-30 15:47:17 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-05-06 09:51:29 -05:00
|
|
|
|
2019-11-07 17:16:23 +01:00
|
|
|
|
2013-05-06 09:51:29 -05:00
|
|
|
|
2017-04-13 12:17:38 +02:00
|
|
|
|
2013-05-06 09:51:29 -05:00
|
|
|
|
2019-06-17 15:29:49 +02:00
|
|
|
|
2012-10-30 15:47:17 -05:00
|
|
|
|
2013-04-26 15:44:36 -05:00
|
|
|
|
rbd: fix rbd map vs notify races
A while ago, commit 9875201e1049 ("rbd: fix use-after free of
rbd_dev->disk") fixed rbd unmap vs notify race by introducing
an exported wrapper for flushing notifies and sticking it into
do_rbd_remove().
A similar problem exists on the rbd map path, though: the watch is
registered in rbd_dev_image_probe(), while the disk is set up quite
a few steps later, in rbd_dev_device_setup(). Nothing prevents
a notify from coming in and crashing on a NULL rbd_dev->disk:
BUG: unable to handle kernel NULL pointer dereference at 0000000000000050
Call Trace:
[<ffffffffa0508344>] rbd_watch_cb+0x34/0x180 [rbd]
[<ffffffffa04bd290>] do_event_work+0x40/0xb0 [libceph]
[<ffffffff8109d5db>] process_one_work+0x17b/0x470
[<ffffffff8109e3ab>] worker_thread+0x11b/0x400
[<ffffffff8109e290>] ? rescuer_thread+0x400/0x400
[<ffffffff810a5acf>] kthread+0xcf/0xe0
[<ffffffff810b41b3>] ? finish_task_switch+0x53/0x170
[<ffffffff810a5a00>] ? kthread_create_on_node+0x140/0x140
[<ffffffff81645dd8>] ret_from_fork+0x58/0x90
[<ffffffff810a5a00>] ? kthread_create_on_node+0x140/0x140
RIP [<ffffffffa050828a>] rbd_dev_refresh+0xfa/0x180 [rbd]
If an error occurs during rbd map, we have to error out, potentially
tearing down a watch. Just like on rbd unmap, notifies have to be
flushed, otherwise rbd_watch_cb() may end up trying to read in the
image header after rbd_dev_image_release() has run:
Assertion failure in rbd_dev_header_info() at line 4722:
rbd_assert(rbd_image_format_valid(rbd_dev->image_format));
Call Trace:
[<ffffffff81cccee0>] ? rbd_parent_request_create+0x150/0x150
[<ffffffff81cd4e59>] rbd_dev_refresh+0x59/0x390
[<ffffffff81cd5229>] rbd_watch_cb+0x69/0x290
[<ffffffff81fde9bf>] do_event_work+0x10f/0x1c0
[<ffffffff81107799>] process_one_work+0x689/0x1a80
[<ffffffff811076f7>] ? process_one_work+0x5e7/0x1a80
[<ffffffff81132065>] ? finish_task_switch+0x225/0x640
[<ffffffff81107110>] ? pwq_dec_nr_in_flight+0x2b0/0x2b0
[<ffffffff81108c69>] worker_thread+0xd9/0x1320
[<ffffffff81108b90>] ? process_one_work+0x1a80/0x1a80
[<ffffffff8111b02d>] kthread+0x21d/0x2e0
[<ffffffff8111ae10>] ? kthread_stop+0x550/0x550
[<ffffffff82022802>] ret_from_fork+0x22/0x40
[<ffffffff8111ae10>] ? kthread_stop+0x550/0x550
RIP [<ffffffff81ccd8f9>] rbd_dev_header_info+0xa19/0x1e30
To fix this, a) check if RBD_DEV_FLAG_EXISTS is set before calling
revalidate_disk(), b) move ceph_osdc_flush_notifies() call into
rbd_dev_header_unwatch_sync() to cover rbd map error paths and c) turn
header read-in into a critical section. The latter also happens to
take care of rbd map foo@bar vs rbd snap rm foo@bar race.
Fixes: http://tracker.ceph.com/issues/15490
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Reviewed-by: Josh Durgin <jdurgin@redhat.com>
2016-04-15 16:22:16 +02:00
|
|
|
|
2017-04-13 12:17:38 +02:00
|
|
|
|
2012-10-30 19:40:33 -05:00
|
|
|
|
2012-10-30 15:47:17 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
rbd: add support for single-major device number allocation scheme
Currently each rbd device is allocated its own major number, which
leads to a hard limit of 230-250 images mapped at once. This commit
adds support for a new single-major device number allocation scheme,
which is hidden behind a new single_major boolean module parameter and
is disabled by default for backwards compatibility reasons. (Old
userspace cannot correctly unmap images mapped under single-major
scheme and would essentially just unmap a random image, if that.)
$ rbd showmapped
id pool image snap device
0 rbd b100 - /dev/rbd0
1 rbd b101 - /dev/rbd1
2 rbd b102 - /dev/rbd2
3 rbd b103 - /dev/rbd3
Old scheme (modprobe rbd):
$ ls -l /dev/rbd*
brw-rw---- 1 root disk 253, 0 Dec 10 12:24 /dev/rbd0
brw-rw---- 1 root disk 252, 0 Dec 10 12:28 /dev/rbd1
brw-rw---- 1 root disk 252, 1 Dec 10 12:28 /dev/rbd1p1
brw-rw---- 1 root disk 252, 2 Dec 10 12:28 /dev/rbd1p2
brw-rw---- 1 root disk 252, 3 Dec 10 12:28 /dev/rbd1p3
brw-rw---- 1 root disk 251, 0 Dec 10 12:28 /dev/rbd2
brw-rw---- 1 root disk 251, 1 Dec 10 12:28 /dev/rbd2p1
brw-rw---- 1 root disk 250, 0 Dec 10 12:24 /dev/rbd3
New scheme (modprobe rbd single_major=Y):
$ ls -l /dev/rbd*
brw-rw---- 1 root disk 253, 0 Dec 10 12:30 /dev/rbd0
brw-rw---- 1 root disk 253, 256 Dec 10 12:30 /dev/rbd1
brw-rw---- 1 root disk 253, 257 Dec 10 12:30 /dev/rbd1p1
brw-rw---- 1 root disk 253, 258 Dec 10 12:30 /dev/rbd1p2
brw-rw---- 1 root disk 253, 259 Dec 10 12:30 /dev/rbd1p3
brw-rw---- 1 root disk 253, 512 Dec 10 12:30 /dev/rbd2
brw-rw---- 1 root disk 253, 513 Dec 10 12:30 /dev/rbd2p1
brw-rw---- 1 root disk 253, 768 Dec 10 12:30 /dev/rbd3
(major 253 was assigned dynamically at module load time)
The new limit is 4096 images mapped at once, and it comes from the fact
that, as before, 256 minor numbers are reserved for each mapping.
(A follow-up commit changes the number of minors reserved and the way
we deal with partitions over that number.)
If single_major is set to true, two new sysfs interfaces show up:
/sys/bus/rbd/{add,remove}_single_major. These are to be used instead
of /sys/bus/rbd/{add,remove}, which are disabled for backwards
compatibility reasons outlined above.
Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
Reviewed-by: Alex Elder <elder@linaro.org>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2013-12-13 15:28:57 +02:00
|
|
|
|
|
|
|
|
|
rbd: fix rbd map vs notify races
A while ago, commit 9875201e1049 ("rbd: fix use-after free of
rbd_dev->disk") fixed rbd unmap vs notify race by introducing
an exported wrapper for flushing notifies and sticking it into
do_rbd_remove().
A similar problem exists on the rbd map path, though: the watch is
registered in rbd_dev_image_probe(), while the disk is set up quite
a few steps later, in rbd_dev_device_setup(). Nothing prevents
a notify from coming in and crashing on a NULL rbd_dev->disk:
BUG: unable to handle kernel NULL pointer dereference at 0000000000000050
Call Trace:
[<ffffffffa0508344>] rbd_watch_cb+0x34/0x180 [rbd]
[<ffffffffa04bd290>] do_event_work+0x40/0xb0 [libceph]
[<ffffffff8109d5db>] process_one_work+0x17b/0x470
[<ffffffff8109e3ab>] worker_thread+0x11b/0x400
[<ffffffff8109e290>] ? rescuer_thread+0x400/0x400
[<ffffffff810a5acf>] kthread+0xcf/0xe0
[<ffffffff810b41b3>] ? finish_task_switch+0x53/0x170
[<ffffffff810a5a00>] ? kthread_create_on_node+0x140/0x140
[<ffffffff81645dd8>] ret_from_fork+0x58/0x90
[<ffffffff810a5a00>] ? kthread_create_on_node+0x140/0x140
RIP [<ffffffffa050828a>] rbd_dev_refresh+0xfa/0x180 [rbd]
If an error occurs during rbd map, we have to error out, potentially
tearing down a watch. Just like on rbd unmap, notifies have to be
flushed, otherwise rbd_watch_cb() may end up trying to read in the
image header after rbd_dev_image_release() has run:
Assertion failure in rbd_dev_header_info() at line 4722:
rbd_assert(rbd_image_format_valid(rbd_dev->image_format));
Call Trace:
[<ffffffff81cccee0>] ? rbd_parent_request_create+0x150/0x150
[<ffffffff81cd4e59>] rbd_dev_refresh+0x59/0x390
[<ffffffff81cd5229>] rbd_watch_cb+0x69/0x290
[<ffffffff81fde9bf>] do_event_work+0x10f/0x1c0
[<ffffffff81107799>] process_one_work+0x689/0x1a80
[<ffffffff811076f7>] ? process_one_work+0x5e7/0x1a80
[<ffffffff81132065>] ? finish_task_switch+0x225/0x640
[<ffffffff81107110>] ? pwq_dec_nr_in_flight+0x2b0/0x2b0
[<ffffffff81108c69>] worker_thread+0xd9/0x1320
[<ffffffff81108b90>] ? process_one_work+0x1a80/0x1a80
[<ffffffff8111b02d>] kthread+0x21d/0x2e0
[<ffffffff8111ae10>] ? kthread_stop+0x550/0x550
[<ffffffff82022802>] ret_from_fork+0x22/0x40
[<ffffffff8111ae10>] ? kthread_stop+0x550/0x550
RIP [<ffffffff81ccd8f9>] rbd_dev_header_info+0xa19/0x1e30
To fix this, a) check if RBD_DEV_FLAG_EXISTS is set before calling
revalidate_disk(), b) move ceph_osdc_flush_notifies() call into
rbd_dev_header_unwatch_sync() to cover rbd map error paths and c) turn
header read-in into a critical section. The latter also happens to
take care of rbd map foo@bar vs rbd snap rm foo@bar race.
Fixes: http://tracker.ceph.com/issues/15490
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Reviewed-by: Josh Durgin <jdurgin@redhat.com>
2016-04-15 16:22:16 +02:00
|
|
|
|
|
|
|
|
|
2012-10-30 15:47:17 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-04-27 09:59:30 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-04-29 20:01:25 +02:00
|
|
|
|
2013-04-27 09:59:30 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-04-29 20:01:25 +02:00
|
|
|
|
|
|
|
|
|
2013-04-27 09:59:30 -05:00
|
|
|
|
2016-04-29 20:01:25 +02:00
|
|
|
|
|
|
|
|
|
2013-04-27 09:59:30 -05:00
|
|
|
|
2016-04-29 20:01:25 +02:00
|
|
|
|
2013-04-27 09:59:30 -05:00
|
|
|
|
|
|
|
|
|
2019-11-12 20:20:04 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-04-28 23:32:34 -05:00
|
|
|
|
|
|
|
|
|
2020-03-16 17:16:28 +01:00
|
|
|
|
2017-04-13 12:17:37 +02:00
|
|
|
|
2020-03-16 15:52:54 +01:00
|
|
|
|
|
|
|
|
|
2013-04-28 23:32:34 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-04-28 23:32:34 -05:00
|
|
|
|
|
|
|
|
|
2012-07-10 20:30:11 -05:00
|
|
|
|
|
|
|
|
|
2013-05-06 17:40:33 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-03-13 11:20:51 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-07-10 20:30:11 -05:00
|
|
|
|
2015-10-11 19:38:00 +02:00
|
|
|
|
2012-07-10 20:30:11 -05:00
|
|
|
|
2019-11-12 20:20:04 +01:00
|
|
|
|
2012-07-10 20:30:11 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-05-13 20:35:37 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-07-10 20:30:11 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-04-25 23:15:08 -05:00
|
|
|
|
|
|
|
|
|
2013-04-27 09:59:30 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-11-12 20:20:04 +01:00
|
|
|
|
2016-08-12 16:11:41 +02:00
|
|
|
|
2015-03-05 10:47:22 +03:00
|
|
|
|
|
|
|
|
|
2019-11-12 20:20:04 +01:00
|
|
|
|
2016-04-29 20:01:25 +02:00
|
|
|
|
2015-03-05 10:47:22 +03:00
|
|
|
|
2013-05-06 17:40:33 -05:00
|
|
|
|
2013-04-27 09:59:31 -05:00
|
|
|
|
2020-03-13 11:20:51 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-09-19 20:41:47 +02:00
|
|
|
|
2019-11-12 20:20:04 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-03-16 15:52:54 +01:00
|
|
|
|
2019-11-12 20:20:04 +01:00
|
|
|
|
2012-10-30 15:47:17 -05:00
|
|
|
|
2023-09-19 20:41:47 +02:00
|
|
|
|
|
|
|
|
|
2014-07-23 17:11:20 +04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-10-11 19:38:00 +02:00
|
|
|
|
2014-07-23 17:11:20 +04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-03-05 10:47:22 +03:00
|
|
|
|
|
|
|
|
|
2019-11-12 20:20:04 +01:00
|
|
|
|
2013-04-30 00:44:33 -05:00
|
|
|
|
2015-03-05 10:47:22 +03:00
|
|
|
|
2013-04-27 09:59:30 -05:00
|
|
|
|
2019-06-17 15:29:49 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-11-07 16:22:10 +01:00
|
|
|
|
2019-06-05 19:25:11 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-07-24 10:42:13 +04:00
|
|
|
|
2023-09-20 18:38:26 +02:00
|
|
|
|
2014-07-24 10:42:13 +04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-10-11 19:38:00 +02:00
|
|
|
|
2013-05-06 09:51:30 -05:00
|
|
|
|
|
|
|
|
|
2012-10-30 15:47:17 -05:00
|
|
|
|
2013-05-06 09:51:30 -05:00
|
|
|
|
2016-04-29 20:01:25 +02:00
|
|
|
|
2013-05-06 09:51:30 -05:00
|
|
|
|
2014-07-24 10:42:13 +04:00
|
|
|
|
2013-04-28 23:32:34 -05:00
|
|
|
|
2020-03-13 11:20:51 +01:00
|
|
|
|
|
|
|
|
|
2019-11-12 20:20:04 +01:00
|
|
|
|
2016-08-12 16:11:41 +02:00
|
|
|
|
2020-03-16 15:52:54 +01:00
|
|
|
|
2013-04-27 09:59:30 -05:00
|
|
|
|
|
|
|
|
|
2013-04-25 23:15:08 -05:00
|
|
|
|
|
|
|
|
|
2012-07-10 20:30:11 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-09-19 20:41:47 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-09-20 19:01:03 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-09-19 20:41:47 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-09-20 18:38:26 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-09-17 15:07:40 +02:00
|
|
|
|
|
|
|
|
|
2023-09-19 20:41:47 +02:00
|
|
|
|
2023-09-20 18:38:26 +02:00
|
|
|
|
2023-09-17 15:07:40 +02:00
|
|
|
|
|
|
|
|
|
2023-09-20 19:01:03 +02:00
|
|
|
|
2023-09-17 15:07:40 +02:00
|
|
|
|
2023-09-19 20:41:47 +02:00
|
|
|
|
2023-09-17 15:07:40 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-09-20 18:38:26 +02:00
|
|
|
|
2023-09-17 15:07:40 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-09-20 19:01:03 +02:00
|
|
|
|
2023-09-19 20:41:47 +02:00
|
|
|
|
2023-09-20 18:38:26 +02:00
|
|
|
|
|
|
|
|
|
2023-09-20 19:01:03 +02:00
|
|
|
|
2023-09-17 15:07:40 +02:00
|
|
|
|
|
|
|
|
|
2023-09-20 18:38:26 +02:00
|
|
|
|
2023-09-19 20:41:47 +02:00
|
|
|
|
2023-09-17 15:07:40 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-03-13 19:29:05 +01:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2012-07-09 21:04:23 -05:00
|
|
|
|
2012-10-25 23:34:41 -05:00
|
|
|
|
2012-10-25 23:34:41 -05:00
|
|
|
|
2012-10-25 23:34:42 -05:00
|
|
|
|
2012-10-25 23:34:42 -05:00
|
|
|
|
2015-10-15 15:38:57 +02:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2020-09-03 13:24:11 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-02-02 08:13:30 -06:00
|
|
|
|
2012-10-25 23:34:42 -05:00
|
|
|
|
2012-10-25 23:34:41 -05:00
|
|
|
|
2015-10-16 17:09:24 +02:00
|
|
|
|
2012-02-02 08:13:30 -06:00
|
|
|
|
2012-10-25 23:34:42 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-10-25 23:34:41 -05:00
|
|
|
|
2012-10-25 23:34:42 -05:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
|
|
|
|
|
2018-02-22 13:43:24 +01:00
|
|
|
|
2015-03-05 10:47:22 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2015-03-05 10:47:22 +03:00
|
|
|
|
2013-04-26 09:43:47 -05:00
|
|
|
|
2012-10-25 23:34:42 -05:00
|
|
|
|
2015-06-22 13:24:48 +03:00
|
|
|
|
2015-10-15 15:38:57 +02:00
|
|
|
|
|
|
|
|
|
2012-10-25 23:34:42 -05:00
|
|
|
|
2015-10-15 15:38:57 +02:00
|
|
|
|
2012-10-25 23:34:42 -05:00
|
|
|
|
|
|
|
|
|
2015-06-22 13:24:48 +03:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2019-11-07 17:16:23 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-18 18:38:45 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-10-11 19:38:00 +02:00
|
|
|
|
2020-03-13 11:20:51 +01:00
|
|
|
|
2012-10-25 23:34:42 -05:00
|
|
|
|
2012-08-29 17:11:07 -05:00
|
|
|
|
2019-01-30 15:14:48 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-04-28 23:32:34 -05:00
|
|
|
|
2017-04-13 12:17:37 +02:00
|
|
|
|
2017-04-13 12:17:37 +02:00
|
|
|
|
2013-05-13 20:35:37 -05:00
|
|
|
|
2019-06-06 17:14:49 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-05-13 20:35:37 -05:00
|
|
|
|
2017-04-13 12:17:38 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-04-13 12:17:39 +02:00
|
|
|
|
2017-04-13 12:17:38 +02:00
|
|
|
|
2021-09-27 15:02:28 -07:00
|
|
|
|
|
|
|
|
|
2026-04-19 17:03:48 +08:00
|
|
|
|
2017-04-13 12:17:38 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-10-16 17:09:24 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-04-28 23:32:34 -05:00
|
|
|
|
2026-04-19 17:03:48 +08:00
|
|
|
|
|
|
|
|
|
2017-04-13 12:17:39 +02:00
|
|
|
|
|
|
|
|
|
2017-04-13 12:17:38 +02:00
|
|
|
|
2017-04-13 12:17:37 +02:00
|
|
|
|
|
|
|
|
|
2012-10-25 23:34:42 -05:00
|
|
|
|
|
|
|
|
|
2012-10-25 23:34:42 -05:00
|
|
|
|
2012-10-25 23:34:42 -05:00
|
|
|
|
2012-10-25 23:34:41 -05:00
|
|
|
|
2012-10-25 23:34:42 -05:00
|
|
|
|
2015-06-22 13:24:48 +03:00
|
|
|
|
2015-10-16 17:09:24 +02:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
|
|
|
|
|
2023-03-13 19:29:05 +01:00
|
|
|
|
rbd: add support for single-major device number allocation scheme
Currently each rbd device is allocated its own major number, which
leads to a hard limit of 230-250 images mapped at once. This commit
adds support for a new single-major device number allocation scheme,
which is hidden behind a new single_major boolean module parameter and
is disabled by default for backwards compatibility reasons. (Old
userspace cannot correctly unmap images mapped under single-major
scheme and would essentially just unmap a random image, if that.)
$ rbd showmapped
id pool image snap device
0 rbd b100 - /dev/rbd0
1 rbd b101 - /dev/rbd1
2 rbd b102 - /dev/rbd2
3 rbd b103 - /dev/rbd3
Old scheme (modprobe rbd):
$ ls -l /dev/rbd*
brw-rw---- 1 root disk 253, 0 Dec 10 12:24 /dev/rbd0
brw-rw---- 1 root disk 252, 0 Dec 10 12:28 /dev/rbd1
brw-rw---- 1 root disk 252, 1 Dec 10 12:28 /dev/rbd1p1
brw-rw---- 1 root disk 252, 2 Dec 10 12:28 /dev/rbd1p2
brw-rw---- 1 root disk 252, 3 Dec 10 12:28 /dev/rbd1p3
brw-rw---- 1 root disk 251, 0 Dec 10 12:28 /dev/rbd2
brw-rw---- 1 root disk 251, 1 Dec 10 12:28 /dev/rbd2p1
brw-rw---- 1 root disk 250, 0 Dec 10 12:24 /dev/rbd3
New scheme (modprobe rbd single_major=Y):
$ ls -l /dev/rbd*
brw-rw---- 1 root disk 253, 0 Dec 10 12:30 /dev/rbd0
brw-rw---- 1 root disk 253, 256 Dec 10 12:30 /dev/rbd1
brw-rw---- 1 root disk 253, 257 Dec 10 12:30 /dev/rbd1p1
brw-rw---- 1 root disk 253, 258 Dec 10 12:30 /dev/rbd1p2
brw-rw---- 1 root disk 253, 259 Dec 10 12:30 /dev/rbd1p3
brw-rw---- 1 root disk 253, 512 Dec 10 12:30 /dev/rbd2
brw-rw---- 1 root disk 253, 513 Dec 10 12:30 /dev/rbd2p1
brw-rw---- 1 root disk 253, 768 Dec 10 12:30 /dev/rbd3
(major 253 was assigned dynamically at module load time)
The new limit is 4096 images mapped at once, and it comes from the fact
that, as before, 256 minor numbers are reserved for each mapping.
(A follow-up commit changes the number of minors reserved and the way
we deal with partitions over that number.)
If single_major is set to true, two new sysfs interfaces show up:
/sys/bus/rbd/{add,remove}_single_major. These are to be used instead
of /sys/bus/rbd/{add,remove}, which are disabled for backwards
compatibility reasons outlined above.
Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
Reviewed-by: Alex Elder <elder@linaro.org>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2013-12-13 15:28:57 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-03-13 19:29:05 +01:00
|
|
|
|
rbd: add support for single-major device number allocation scheme
Currently each rbd device is allocated its own major number, which
leads to a hard limit of 230-250 images mapped at once. This commit
adds support for a new single-major device number allocation scheme,
which is hidden behind a new single_major boolean module parameter and
is disabled by default for backwards compatibility reasons. (Old
userspace cannot correctly unmap images mapped under single-major
scheme and would essentially just unmap a random image, if that.)
$ rbd showmapped
id pool image snap device
0 rbd b100 - /dev/rbd0
1 rbd b101 - /dev/rbd1
2 rbd b102 - /dev/rbd2
3 rbd b103 - /dev/rbd3
Old scheme (modprobe rbd):
$ ls -l /dev/rbd*
brw-rw---- 1 root disk 253, 0 Dec 10 12:24 /dev/rbd0
brw-rw---- 1 root disk 252, 0 Dec 10 12:28 /dev/rbd1
brw-rw---- 1 root disk 252, 1 Dec 10 12:28 /dev/rbd1p1
brw-rw---- 1 root disk 252, 2 Dec 10 12:28 /dev/rbd1p2
brw-rw---- 1 root disk 252, 3 Dec 10 12:28 /dev/rbd1p3
brw-rw---- 1 root disk 251, 0 Dec 10 12:28 /dev/rbd2
brw-rw---- 1 root disk 251, 1 Dec 10 12:28 /dev/rbd2p1
brw-rw---- 1 root disk 250, 0 Dec 10 12:24 /dev/rbd3
New scheme (modprobe rbd single_major=Y):
$ ls -l /dev/rbd*
brw-rw---- 1 root disk 253, 0 Dec 10 12:30 /dev/rbd0
brw-rw---- 1 root disk 253, 256 Dec 10 12:30 /dev/rbd1
brw-rw---- 1 root disk 253, 257 Dec 10 12:30 /dev/rbd1p1
brw-rw---- 1 root disk 253, 258 Dec 10 12:30 /dev/rbd1p2
brw-rw---- 1 root disk 253, 259 Dec 10 12:30 /dev/rbd1p3
brw-rw---- 1 root disk 253, 512 Dec 10 12:30 /dev/rbd2
brw-rw---- 1 root disk 253, 513 Dec 10 12:30 /dev/rbd2p1
brw-rw---- 1 root disk 253, 768 Dec 10 12:30 /dev/rbd3
(major 253 was assigned dynamically at module load time)
The new limit is 4096 images mapped at once, and it comes from the fact
that, as before, 256 minor numbers are reserved for each mapping.
(A follow-up commit changes the number of minors reserved and the way
we deal with partitions over that number.)
If single_major is set to true, two new sysfs interfaces show up:
/sys/bus/rbd/{add,remove}_single_major. These are to be used instead
of /sys/bus/rbd/{add,remove}, which are disabled for backwards
compatibility reasons outlined above.
Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
Reviewed-by: Alex Elder <elder@linaro.org>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2013-12-13 15:28:57 +02:00
|
|
|
|
|
|
|
|
|
2023-03-13 19:29:05 +01:00
|
|
|
|
2018-12-21 08:54:38 +01:00
|
|
|
|
rbd: add support for single-major device number allocation scheme
Currently each rbd device is allocated its own major number, which
leads to a hard limit of 230-250 images mapped at once. This commit
adds support for a new single-major device number allocation scheme,
which is hidden behind a new single_major boolean module parameter and
is disabled by default for backwards compatibility reasons. (Old
userspace cannot correctly unmap images mapped under single-major
scheme and would essentially just unmap a random image, if that.)
$ rbd showmapped
id pool image snap device
0 rbd b100 - /dev/rbd0
1 rbd b101 - /dev/rbd1
2 rbd b102 - /dev/rbd2
3 rbd b103 - /dev/rbd3
Old scheme (modprobe rbd):
$ ls -l /dev/rbd*
brw-rw---- 1 root disk 253, 0 Dec 10 12:24 /dev/rbd0
brw-rw---- 1 root disk 252, 0 Dec 10 12:28 /dev/rbd1
brw-rw---- 1 root disk 252, 1 Dec 10 12:28 /dev/rbd1p1
brw-rw---- 1 root disk 252, 2 Dec 10 12:28 /dev/rbd1p2
brw-rw---- 1 root disk 252, 3 Dec 10 12:28 /dev/rbd1p3
brw-rw---- 1 root disk 251, 0 Dec 10 12:28 /dev/rbd2
brw-rw---- 1 root disk 251, 1 Dec 10 12:28 /dev/rbd2p1
brw-rw---- 1 root disk 250, 0 Dec 10 12:24 /dev/rbd3
New scheme (modprobe rbd single_major=Y):
$ ls -l /dev/rbd*
brw-rw---- 1 root disk 253, 0 Dec 10 12:30 /dev/rbd0
brw-rw---- 1 root disk 253, 256 Dec 10 12:30 /dev/rbd1
brw-rw---- 1 root disk 253, 257 Dec 10 12:30 /dev/rbd1p1
brw-rw---- 1 root disk 253, 258 Dec 10 12:30 /dev/rbd1p2
brw-rw---- 1 root disk 253, 259 Dec 10 12:30 /dev/rbd1p3
brw-rw---- 1 root disk 253, 512 Dec 10 12:30 /dev/rbd2
brw-rw---- 1 root disk 253, 513 Dec 10 12:30 /dev/rbd2p1
brw-rw---- 1 root disk 253, 768 Dec 10 12:30 /dev/rbd3
(major 253 was assigned dynamically at module load time)
The new limit is 4096 images mapped at once, and it comes from the fact
that, as before, 256 minor numbers are reserved for each mapping.
(A follow-up commit changes the number of minors reserved and the way
we deal with partitions over that number.)
If single_major is set to true, two new sysfs interfaces show up:
/sys/bus/rbd/{add,remove}_single_major. These are to be used instead
of /sys/bus/rbd/{add,remove}, which are disabled for backwards
compatibility reasons outlined above.
Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
Reviewed-by: Alex Elder <elder@linaro.org>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2013-12-13 15:28:57 +02:00
|
|
|
|
2023-03-13 19:29:05 +01:00
|
|
|
|
rbd: add support for single-major device number allocation scheme
Currently each rbd device is allocated its own major number, which
leads to a hard limit of 230-250 images mapped at once. This commit
adds support for a new single-major device number allocation scheme,
which is hidden behind a new single_major boolean module parameter and
is disabled by default for backwards compatibility reasons. (Old
userspace cannot correctly unmap images mapped under single-major
scheme and would essentially just unmap a random image, if that.)
$ rbd showmapped
id pool image snap device
0 rbd b100 - /dev/rbd0
1 rbd b101 - /dev/rbd1
2 rbd b102 - /dev/rbd2
3 rbd b103 - /dev/rbd3
Old scheme (modprobe rbd):
$ ls -l /dev/rbd*
brw-rw---- 1 root disk 253, 0 Dec 10 12:24 /dev/rbd0
brw-rw---- 1 root disk 252, 0 Dec 10 12:28 /dev/rbd1
brw-rw---- 1 root disk 252, 1 Dec 10 12:28 /dev/rbd1p1
brw-rw---- 1 root disk 252, 2 Dec 10 12:28 /dev/rbd1p2
brw-rw---- 1 root disk 252, 3 Dec 10 12:28 /dev/rbd1p3
brw-rw---- 1 root disk 251, 0 Dec 10 12:28 /dev/rbd2
brw-rw---- 1 root disk 251, 1 Dec 10 12:28 /dev/rbd2p1
brw-rw---- 1 root disk 250, 0 Dec 10 12:24 /dev/rbd3
New scheme (modprobe rbd single_major=Y):
$ ls -l /dev/rbd*
brw-rw---- 1 root disk 253, 0 Dec 10 12:30 /dev/rbd0
brw-rw---- 1 root disk 253, 256 Dec 10 12:30 /dev/rbd1
brw-rw---- 1 root disk 253, 257 Dec 10 12:30 /dev/rbd1p1
brw-rw---- 1 root disk 253, 258 Dec 10 12:30 /dev/rbd1p2
brw-rw---- 1 root disk 253, 259 Dec 10 12:30 /dev/rbd1p3
brw-rw---- 1 root disk 253, 512 Dec 10 12:30 /dev/rbd2
brw-rw---- 1 root disk 253, 513 Dec 10 12:30 /dev/rbd2p1
brw-rw---- 1 root disk 253, 768 Dec 10 12:30 /dev/rbd3
(major 253 was assigned dynamically at module load time)
The new limit is 4096 images mapped at once, and it comes from the fact
that, as before, 256 minor numbers are reserved for each mapping.
(A follow-up commit changes the number of minors reserved and the way
we deal with partitions over that number.)
If single_major is set to true, two new sysfs interfaces show up:
/sys/bus/rbd/{add,remove}_single_major. These are to be used instead
of /sys/bus/rbd/{add,remove}, which are disabled for backwards
compatibility reasons outlined above.
Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
Reviewed-by: Alex Elder <elder@linaro.org>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2013-12-13 15:28:57 +02:00
|
|
|
|
|
|
|
|
|
2013-04-26 15:44:36 -05:00
|
|
|
|
|
|
|
|
|
2013-04-26 15:44:36 -05:00
|
|
|
|
2013-04-26 15:44:36 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-04-26 15:44:36 -05:00
|
|
|
|
2013-04-28 23:32:34 -05:00
|
|
|
|
2017-04-13 12:17:37 +02:00
|
|
|
|
2013-04-26 15:44:36 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-04-26 15:44:36 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-03-13 19:29:05 +01:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
|
|
|
|
|
2013-05-31 15:17:01 -05:00
|
|
|
|
2016-08-18 18:38:45 +02:00
|
|
|
|
|
|
|
|
|
2013-04-27 09:59:30 -05:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2020-09-03 13:24:11 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-08-18 18:38:45 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2016-08-18 18:38:45 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2013-05-31 15:17:01 -05:00
|
|
|
|
|
|
|
|
|
2023-08-30 16:59:29 +08:00
|
|
|
|
2013-05-31 15:17:01 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-11-16 09:29:16 -06:00
|
|
|
|
2013-05-31 15:17:01 -05:00
|
|
|
|
|
|
|
|
|
2016-08-18 18:38:45 +02:00
|
|
|
|
2013-05-31 15:17:01 -05:00
|
|
|
|
rbd: don't return 0 on unmap if RBD_DEV_FLAG_REMOVING is set
There is a window between when RBD_DEV_FLAG_REMOVING is set and when
the device is removed from rbd_dev_list. During this window, we set
"already" and return 0.
Returning 0 from write(2) can confuse userspace tools because
0 indicates that nothing was written. In particular, "rbd unmap"
will retry the write multiple times a second:
10:28:05.463299 write(4, "0", 1) = 0
10:28:05.463509 write(4, "0", 1) = 0
10:28:05.463720 write(4, "0", 1) = 0
10:28:05.463942 write(4, "0", 1) = 0
10:28:05.464155 write(4, "0", 1) = 0
Cc: stable@vger.kernel.org
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Tested-by: Dongsheng Yang <dongsheng.yang@easystack.cn>
2019-01-08 19:47:38 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-05-31 15:17:01 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
rbd: don't return 0 on unmap if RBD_DEV_FLAG_REMOVING is set
There is a window between when RBD_DEV_FLAG_REMOVING is set and when
the device is removed from rbd_dev_list. During this window, we set
"already" and return 0.
Returning 0 from write(2) can confuse userspace tools because
0 indicates that nothing was written. In particular, "rbd unmap"
will retry the write multiple times a second:
10:28:05.463299 write(4, "0", 1) = 0
10:28:05.463509 write(4, "0", 1) = 0
10:28:05.463720 write(4, "0", 1) = 0
10:28:05.463942 write(4, "0", 1) = 0
10:28:05.464155 write(4, "0", 1) = 0
Cc: stable@vger.kernel.org
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Tested-by: Dongsheng Yang <dongsheng.yang@easystack.cn>
2019-01-08 19:47:38 +01:00
|
|
|
|
2013-05-31 15:17:01 -05:00
|
|
|
|
2013-05-31 15:17:01 -05:00
|
|
|
|
2016-08-18 18:38:45 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-31 13:03:47 +01:00
|
|
|
|
|
|
|
|
|
2022-02-17 08:52:31 +01:00
|
|
|
|
2025-01-31 13:03:47 +01:00
|
|
|
|
2016-08-18 18:38:45 +02:00
|
|
|
|
|
|
|
|
|
2017-04-13 12:17:38 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-12-16 18:02:40 +02:00
|
|
|
|
2017-04-13 12:17:39 +02:00
|
|
|
|
2015-10-16 17:09:24 +02:00
|
|
|
|
2013-04-28 23:32:34 -05:00
|
|
|
|
2017-04-13 12:17:37 +02:00
|
|
|
|
2013-05-31 15:17:01 -05:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
|
|
|
|
|
2023-03-13 19:29:05 +01:00
|
|
|
|
rbd: add support for single-major device number allocation scheme
Currently each rbd device is allocated its own major number, which
leads to a hard limit of 230-250 images mapped at once. This commit
adds support for a new single-major device number allocation scheme,
which is hidden behind a new single_major boolean module parameter and
is disabled by default for backwards compatibility reasons. (Old
userspace cannot correctly unmap images mapped under single-major
scheme and would essentially just unmap a random image, if that.)
$ rbd showmapped
id pool image snap device
0 rbd b100 - /dev/rbd0
1 rbd b101 - /dev/rbd1
2 rbd b102 - /dev/rbd2
3 rbd b103 - /dev/rbd3
Old scheme (modprobe rbd):
$ ls -l /dev/rbd*
brw-rw---- 1 root disk 253, 0 Dec 10 12:24 /dev/rbd0
brw-rw---- 1 root disk 252, 0 Dec 10 12:28 /dev/rbd1
brw-rw---- 1 root disk 252, 1 Dec 10 12:28 /dev/rbd1p1
brw-rw---- 1 root disk 252, 2 Dec 10 12:28 /dev/rbd1p2
brw-rw---- 1 root disk 252, 3 Dec 10 12:28 /dev/rbd1p3
brw-rw---- 1 root disk 251, 0 Dec 10 12:28 /dev/rbd2
brw-rw---- 1 root disk 251, 1 Dec 10 12:28 /dev/rbd2p1
brw-rw---- 1 root disk 250, 0 Dec 10 12:24 /dev/rbd3
New scheme (modprobe rbd single_major=Y):
$ ls -l /dev/rbd*
brw-rw---- 1 root disk 253, 0 Dec 10 12:30 /dev/rbd0
brw-rw---- 1 root disk 253, 256 Dec 10 12:30 /dev/rbd1
brw-rw---- 1 root disk 253, 257 Dec 10 12:30 /dev/rbd1p1
brw-rw---- 1 root disk 253, 258 Dec 10 12:30 /dev/rbd1p2
brw-rw---- 1 root disk 253, 259 Dec 10 12:30 /dev/rbd1p3
brw-rw---- 1 root disk 253, 512 Dec 10 12:30 /dev/rbd2
brw-rw---- 1 root disk 253, 513 Dec 10 12:30 /dev/rbd2p1
brw-rw---- 1 root disk 253, 768 Dec 10 12:30 /dev/rbd3
(major 253 was assigned dynamically at module load time)
The new limit is 4096 images mapped at once, and it comes from the fact
that, as before, 256 minor numbers are reserved for each mapping.
(A follow-up commit changes the number of minors reserved and the way
we deal with partitions over that number.)
If single_major is set to true, two new sysfs interfaces show up:
/sys/bus/rbd/{add,remove}_single_major. These are to be used instead
of /sys/bus/rbd/{add,remove}, which are disabled for backwards
compatibility reasons outlined above.
Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
Reviewed-by: Alex Elder <elder@linaro.org>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2013-12-13 15:28:57 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-03-13 19:29:05 +01:00
|
|
|
|
rbd: add support for single-major device number allocation scheme
Currently each rbd device is allocated its own major number, which
leads to a hard limit of 230-250 images mapped at once. This commit
adds support for a new single-major device number allocation scheme,
which is hidden behind a new single_major boolean module parameter and
is disabled by default for backwards compatibility reasons. (Old
userspace cannot correctly unmap images mapped under single-major
scheme and would essentially just unmap a random image, if that.)
$ rbd showmapped
id pool image snap device
0 rbd b100 - /dev/rbd0
1 rbd b101 - /dev/rbd1
2 rbd b102 - /dev/rbd2
3 rbd b103 - /dev/rbd3
Old scheme (modprobe rbd):
$ ls -l /dev/rbd*
brw-rw---- 1 root disk 253, 0 Dec 10 12:24 /dev/rbd0
brw-rw---- 1 root disk 252, 0 Dec 10 12:28 /dev/rbd1
brw-rw---- 1 root disk 252, 1 Dec 10 12:28 /dev/rbd1p1
brw-rw---- 1 root disk 252, 2 Dec 10 12:28 /dev/rbd1p2
brw-rw---- 1 root disk 252, 3 Dec 10 12:28 /dev/rbd1p3
brw-rw---- 1 root disk 251, 0 Dec 10 12:28 /dev/rbd2
brw-rw---- 1 root disk 251, 1 Dec 10 12:28 /dev/rbd2p1
brw-rw---- 1 root disk 250, 0 Dec 10 12:24 /dev/rbd3
New scheme (modprobe rbd single_major=Y):
$ ls -l /dev/rbd*
brw-rw---- 1 root disk 253, 0 Dec 10 12:30 /dev/rbd0
brw-rw---- 1 root disk 253, 256 Dec 10 12:30 /dev/rbd1
brw-rw---- 1 root disk 253, 257 Dec 10 12:30 /dev/rbd1p1
brw-rw---- 1 root disk 253, 258 Dec 10 12:30 /dev/rbd1p2
brw-rw---- 1 root disk 253, 259 Dec 10 12:30 /dev/rbd1p3
brw-rw---- 1 root disk 253, 512 Dec 10 12:30 /dev/rbd2
brw-rw---- 1 root disk 253, 513 Dec 10 12:30 /dev/rbd2p1
brw-rw---- 1 root disk 253, 768 Dec 10 12:30 /dev/rbd3
(major 253 was assigned dynamically at module load time)
The new limit is 4096 images mapped at once, and it comes from the fact
that, as before, 256 minor numbers are reserved for each mapping.
(A follow-up commit changes the number of minors reserved and the way
we deal with partitions over that number.)
If single_major is set to true, two new sysfs interfaces show up:
/sys/bus/rbd/{add,remove}_single_major. These are to be used instead
of /sys/bus/rbd/{add,remove}, which are disabled for backwards
compatibility reasons outlined above.
Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
Reviewed-by: Alex Elder <elder@linaro.org>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2013-12-13 15:28:57 +02:00
|
|
|
|
|
|
|
|
|
2023-03-13 19:29:05 +01:00
|
|
|
|
2018-12-21 08:54:38 +01:00
|
|
|
|
rbd: add support for single-major device number allocation scheme
Currently each rbd device is allocated its own major number, which
leads to a hard limit of 230-250 images mapped at once. This commit
adds support for a new single-major device number allocation scheme,
which is hidden behind a new single_major boolean module parameter and
is disabled by default for backwards compatibility reasons. (Old
userspace cannot correctly unmap images mapped under single-major
scheme and would essentially just unmap a random image, if that.)
$ rbd showmapped
id pool image snap device
0 rbd b100 - /dev/rbd0
1 rbd b101 - /dev/rbd1
2 rbd b102 - /dev/rbd2
3 rbd b103 - /dev/rbd3
Old scheme (modprobe rbd):
$ ls -l /dev/rbd*
brw-rw---- 1 root disk 253, 0 Dec 10 12:24 /dev/rbd0
brw-rw---- 1 root disk 252, 0 Dec 10 12:28 /dev/rbd1
brw-rw---- 1 root disk 252, 1 Dec 10 12:28 /dev/rbd1p1
brw-rw---- 1 root disk 252, 2 Dec 10 12:28 /dev/rbd1p2
brw-rw---- 1 root disk 252, 3 Dec 10 12:28 /dev/rbd1p3
brw-rw---- 1 root disk 251, 0 Dec 10 12:28 /dev/rbd2
brw-rw---- 1 root disk 251, 1 Dec 10 12:28 /dev/rbd2p1
brw-rw---- 1 root disk 250, 0 Dec 10 12:24 /dev/rbd3
New scheme (modprobe rbd single_major=Y):
$ ls -l /dev/rbd*
brw-rw---- 1 root disk 253, 0 Dec 10 12:30 /dev/rbd0
brw-rw---- 1 root disk 253, 256 Dec 10 12:30 /dev/rbd1
brw-rw---- 1 root disk 253, 257 Dec 10 12:30 /dev/rbd1p1
brw-rw---- 1 root disk 253, 258 Dec 10 12:30 /dev/rbd1p2
brw-rw---- 1 root disk 253, 259 Dec 10 12:30 /dev/rbd1p3
brw-rw---- 1 root disk 253, 512 Dec 10 12:30 /dev/rbd2
brw-rw---- 1 root disk 253, 513 Dec 10 12:30 /dev/rbd2p1
brw-rw---- 1 root disk 253, 768 Dec 10 12:30 /dev/rbd3
(major 253 was assigned dynamically at module load time)
The new limit is 4096 images mapped at once, and it comes from the fact
that, as before, 256 minor numbers are reserved for each mapping.
(A follow-up commit changes the number of minors reserved and the way
we deal with partitions over that number.)
If single_major is set to true, two new sysfs interfaces show up:
/sys/bus/rbd/{add,remove}_single_major. These are to be used instead
of /sys/bus/rbd/{add,remove}, which are disabled for backwards
compatibility reasons outlined above.
Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
Reviewed-by: Alex Elder <elder@linaro.org>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2013-12-13 15:28:57 +02:00
|
|
|
|
2023-03-13 19:29:05 +01:00
|
|
|
|
rbd: add support for single-major device number allocation scheme
Currently each rbd device is allocated its own major number, which
leads to a hard limit of 230-250 images mapped at once. This commit
adds support for a new single-major device number allocation scheme,
which is hidden behind a new single_major boolean module parameter and
is disabled by default for backwards compatibility reasons. (Old
userspace cannot correctly unmap images mapped under single-major
scheme and would essentially just unmap a random image, if that.)
$ rbd showmapped
id pool image snap device
0 rbd b100 - /dev/rbd0
1 rbd b101 - /dev/rbd1
2 rbd b102 - /dev/rbd2
3 rbd b103 - /dev/rbd3
Old scheme (modprobe rbd):
$ ls -l /dev/rbd*
brw-rw---- 1 root disk 253, 0 Dec 10 12:24 /dev/rbd0
brw-rw---- 1 root disk 252, 0 Dec 10 12:28 /dev/rbd1
brw-rw---- 1 root disk 252, 1 Dec 10 12:28 /dev/rbd1p1
brw-rw---- 1 root disk 252, 2 Dec 10 12:28 /dev/rbd1p2
brw-rw---- 1 root disk 252, 3 Dec 10 12:28 /dev/rbd1p3
brw-rw---- 1 root disk 251, 0 Dec 10 12:28 /dev/rbd2
brw-rw---- 1 root disk 251, 1 Dec 10 12:28 /dev/rbd2p1
brw-rw---- 1 root disk 250, 0 Dec 10 12:24 /dev/rbd3
New scheme (modprobe rbd single_major=Y):
$ ls -l /dev/rbd*
brw-rw---- 1 root disk 253, 0 Dec 10 12:30 /dev/rbd0
brw-rw---- 1 root disk 253, 256 Dec 10 12:30 /dev/rbd1
brw-rw---- 1 root disk 253, 257 Dec 10 12:30 /dev/rbd1p1
brw-rw---- 1 root disk 253, 258 Dec 10 12:30 /dev/rbd1p2
brw-rw---- 1 root disk 253, 259 Dec 10 12:30 /dev/rbd1p3
brw-rw---- 1 root disk 253, 512 Dec 10 12:30 /dev/rbd2
brw-rw---- 1 root disk 253, 513 Dec 10 12:30 /dev/rbd2p1
brw-rw---- 1 root disk 253, 768 Dec 10 12:30 /dev/rbd3
(major 253 was assigned dynamically at module load time)
The new limit is 4096 images mapped at once, and it comes from the fact
that, as before, 256 minor numbers are reserved for each mapping.
(A follow-up commit changes the number of minors reserved and the way
we deal with partitions over that number.)
If single_major is set to true, two new sysfs interfaces show up:
/sys/bus/rbd/{add,remove}_single_major. These are to be used instead
of /sys/bus/rbd/{add,remove}, which are disabled for backwards
compatibility reasons outlined above.
Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
Reviewed-by: Alex Elder <elder@linaro.org>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2013-12-13 15:28:57 +02:00
|
|
|
|
|
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
|
|
|
|
|
2010-11-19 14:51:04 -08:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2018-08-12 23:06:54 +08:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2010-11-19 14:51:04 -08:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2026-04-24 12:39:31 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2012-02-07 12:03:36 -06:00
|
|
|
|
|
|
|
|
|
2026-04-24 12:39:31 +02:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-08-12 23:06:54 +08:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2010-11-19 14:51:04 -08:00
|
|
|
|
2026-04-24 12:39:31 +02:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
|
|
|
|
|
2018-08-12 23:06:54 +08:00
|
|
|
|
2013-05-01 12:43:03 -05:00
|
|
|
|
|
|
|
|
|
2016-03-13 15:17:32 +08:00
|
|
|
|
2013-05-01 12:43:03 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-03-13 15:17:32 +08:00
|
|
|
|
2013-05-01 12:43:04 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-01-25 18:16:23 +01:00
|
|
|
|
2013-05-01 12:43:03 -05:00
|
|
|
|
2017-01-25 18:16:23 +01:00
|
|
|
|
2013-05-01 12:43:03 -05:00
|
|
|
|
|
|
|
|
|
2013-05-01 12:43:03 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-05-01 12:43:03 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-05-01 12:43:03 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-02-19 12:25:56 -06:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-01-30 11:13:33 -06:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-12-13 15:28:57 +02:00
|
|
|
|
2013-05-01 12:43:03 -05:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
|
|
|
|
|
2013-12-13 15:28:57 +02:00
|
|
|
|
2014-10-09 17:06:01 +04:00
|
|
|
|
|
|
|
|
|
2015-04-22 18:28:13 +03:00
|
|
|
|
2014-10-09 17:06:01 +04:00
|
|
|
|
2025-09-05 10:51:41 +02:00
|
|
|
|
2014-10-09 17:06:01 +04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
rbd: add support for single-major device number allocation scheme
Currently each rbd device is allocated its own major number, which
leads to a hard limit of 230-250 images mapped at once. This commit
adds support for a new single-major device number allocation scheme,
which is hidden behind a new single_major boolean module parameter and
is disabled by default for backwards compatibility reasons. (Old
userspace cannot correctly unmap images mapped under single-major
scheme and would essentially just unmap a random image, if that.)
$ rbd showmapped
id pool image snap device
0 rbd b100 - /dev/rbd0
1 rbd b101 - /dev/rbd1
2 rbd b102 - /dev/rbd2
3 rbd b103 - /dev/rbd3
Old scheme (modprobe rbd):
$ ls -l /dev/rbd*
brw-rw---- 1 root disk 253, 0 Dec 10 12:24 /dev/rbd0
brw-rw---- 1 root disk 252, 0 Dec 10 12:28 /dev/rbd1
brw-rw---- 1 root disk 252, 1 Dec 10 12:28 /dev/rbd1p1
brw-rw---- 1 root disk 252, 2 Dec 10 12:28 /dev/rbd1p2
brw-rw---- 1 root disk 252, 3 Dec 10 12:28 /dev/rbd1p3
brw-rw---- 1 root disk 251, 0 Dec 10 12:28 /dev/rbd2
brw-rw---- 1 root disk 251, 1 Dec 10 12:28 /dev/rbd2p1
brw-rw---- 1 root disk 250, 0 Dec 10 12:24 /dev/rbd3
New scheme (modprobe rbd single_major=Y):
$ ls -l /dev/rbd*
brw-rw---- 1 root disk 253, 0 Dec 10 12:30 /dev/rbd0
brw-rw---- 1 root disk 253, 256 Dec 10 12:30 /dev/rbd1
brw-rw---- 1 root disk 253, 257 Dec 10 12:30 /dev/rbd1p1
brw-rw---- 1 root disk 253, 258 Dec 10 12:30 /dev/rbd1p2
brw-rw---- 1 root disk 253, 259 Dec 10 12:30 /dev/rbd1p3
brw-rw---- 1 root disk 253, 512 Dec 10 12:30 /dev/rbd2
brw-rw---- 1 root disk 253, 513 Dec 10 12:30 /dev/rbd2p1
brw-rw---- 1 root disk 253, 768 Dec 10 12:30 /dev/rbd3
(major 253 was assigned dynamically at module load time)
The new limit is 4096 images mapped at once, and it comes from the fact
that, as before, 256 minor numbers are reserved for each mapping.
(A follow-up commit changes the number of minors reserved and the way
we deal with partitions over that number.)
If single_major is set to true, two new sysfs interfaces show up:
/sys/bus/rbd/{add,remove}_single_major. These are to be used instead
of /sys/bus/rbd/{add,remove}, which are disabled for backwards
compatibility reasons outlined above.
Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
Reviewed-by: Alex Elder <elder@linaro.org>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2013-12-13 15:28:57 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-10-09 17:06:01 +04:00
|
|
|
|
rbd: add support for single-major device number allocation scheme
Currently each rbd device is allocated its own major number, which
leads to a hard limit of 230-250 images mapped at once. This commit
adds support for a new single-major device number allocation scheme,
which is hidden behind a new single_major boolean module parameter and
is disabled by default for backwards compatibility reasons. (Old
userspace cannot correctly unmap images mapped under single-major
scheme and would essentially just unmap a random image, if that.)
$ rbd showmapped
id pool image snap device
0 rbd b100 - /dev/rbd0
1 rbd b101 - /dev/rbd1
2 rbd b102 - /dev/rbd2
3 rbd b103 - /dev/rbd3
Old scheme (modprobe rbd):
$ ls -l /dev/rbd*
brw-rw---- 1 root disk 253, 0 Dec 10 12:24 /dev/rbd0
brw-rw---- 1 root disk 252, 0 Dec 10 12:28 /dev/rbd1
brw-rw---- 1 root disk 252, 1 Dec 10 12:28 /dev/rbd1p1
brw-rw---- 1 root disk 252, 2 Dec 10 12:28 /dev/rbd1p2
brw-rw---- 1 root disk 252, 3 Dec 10 12:28 /dev/rbd1p3
brw-rw---- 1 root disk 251, 0 Dec 10 12:28 /dev/rbd2
brw-rw---- 1 root disk 251, 1 Dec 10 12:28 /dev/rbd2p1
brw-rw---- 1 root disk 250, 0 Dec 10 12:24 /dev/rbd3
New scheme (modprobe rbd single_major=Y):
$ ls -l /dev/rbd*
brw-rw---- 1 root disk 253, 0 Dec 10 12:30 /dev/rbd0
brw-rw---- 1 root disk 253, 256 Dec 10 12:30 /dev/rbd1
brw-rw---- 1 root disk 253, 257 Dec 10 12:30 /dev/rbd1p1
brw-rw---- 1 root disk 253, 258 Dec 10 12:30 /dev/rbd1p2
brw-rw---- 1 root disk 253, 259 Dec 10 12:30 /dev/rbd1p3
brw-rw---- 1 root disk 253, 512 Dec 10 12:30 /dev/rbd2
brw-rw---- 1 root disk 253, 513 Dec 10 12:30 /dev/rbd2p1
brw-rw---- 1 root disk 253, 768 Dec 10 12:30 /dev/rbd3
(major 253 was assigned dynamically at module load time)
The new limit is 4096 images mapped at once, and it comes from the fact
that, as before, 256 minor numbers are reserved for each mapping.
(A follow-up commit changes the number of minors reserved and the way
we deal with partitions over that number.)
If single_major is set to true, two new sysfs interfaces show up:
/sys/bus/rbd/{add,remove}_single_major. These are to be used instead
of /sys/bus/rbd/{add,remove}, which are disabled for backwards
compatibility reasons outlined above.
Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
Reviewed-by: Alex Elder <elder@linaro.org>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2013-12-13 15:28:57 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-05-01 12:43:03 -05:00
|
|
|
|
|
|
|
|
|
rbd: add support for single-major device number allocation scheme
Currently each rbd device is allocated its own major number, which
leads to a hard limit of 230-250 images mapped at once. This commit
adds support for a new single-major device number allocation scheme,
which is hidden behind a new single_major boolean module parameter and
is disabled by default for backwards compatibility reasons. (Old
userspace cannot correctly unmap images mapped under single-major
scheme and would essentially just unmap a random image, if that.)
$ rbd showmapped
id pool image snap device
0 rbd b100 - /dev/rbd0
1 rbd b101 - /dev/rbd1
2 rbd b102 - /dev/rbd2
3 rbd b103 - /dev/rbd3
Old scheme (modprobe rbd):
$ ls -l /dev/rbd*
brw-rw---- 1 root disk 253, 0 Dec 10 12:24 /dev/rbd0
brw-rw---- 1 root disk 252, 0 Dec 10 12:28 /dev/rbd1
brw-rw---- 1 root disk 252, 1 Dec 10 12:28 /dev/rbd1p1
brw-rw---- 1 root disk 252, 2 Dec 10 12:28 /dev/rbd1p2
brw-rw---- 1 root disk 252, 3 Dec 10 12:28 /dev/rbd1p3
brw-rw---- 1 root disk 251, 0 Dec 10 12:28 /dev/rbd2
brw-rw---- 1 root disk 251, 1 Dec 10 12:28 /dev/rbd2p1
brw-rw---- 1 root disk 250, 0 Dec 10 12:24 /dev/rbd3
New scheme (modprobe rbd single_major=Y):
$ ls -l /dev/rbd*
brw-rw---- 1 root disk 253, 0 Dec 10 12:30 /dev/rbd0
brw-rw---- 1 root disk 253, 256 Dec 10 12:30 /dev/rbd1
brw-rw---- 1 root disk 253, 257 Dec 10 12:30 /dev/rbd1p1
brw-rw---- 1 root disk 253, 258 Dec 10 12:30 /dev/rbd1p2
brw-rw---- 1 root disk 253, 259 Dec 10 12:30 /dev/rbd1p3
brw-rw---- 1 root disk 253, 512 Dec 10 12:30 /dev/rbd2
brw-rw---- 1 root disk 253, 513 Dec 10 12:30 /dev/rbd2p1
brw-rw---- 1 root disk 253, 768 Dec 10 12:30 /dev/rbd3
(major 253 was assigned dynamically at module load time)
The new limit is 4096 images mapped at once, and it comes from the fact
that, as before, 256 minor numbers are reserved for each mapping.
(A follow-up commit changes the number of minors reserved and the way
we deal with partitions over that number.)
If single_major is set to true, two new sysfs interfaces show up:
/sys/bus/rbd/{add,remove}_single_major. These are to be used instead
of /sys/bus/rbd/{add,remove}, which are disabled for backwards
compatibility reasons outlined above.
Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
Reviewed-by: Alex Elder <elder@linaro.org>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2013-12-13 15:28:57 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-05-01 12:43:03 -05:00
|
|
|
|
2013-12-13 15:28:57 +02:00
|
|
|
|
|
|
|
|
|
rbd: add support for single-major device number allocation scheme
Currently each rbd device is allocated its own major number, which
leads to a hard limit of 230-250 images mapped at once. This commit
adds support for a new single-major device number allocation scheme,
which is hidden behind a new single_major boolean module parameter and
is disabled by default for backwards compatibility reasons. (Old
userspace cannot correctly unmap images mapped under single-major
scheme and would essentially just unmap a random image, if that.)
$ rbd showmapped
id pool image snap device
0 rbd b100 - /dev/rbd0
1 rbd b101 - /dev/rbd1
2 rbd b102 - /dev/rbd2
3 rbd b103 - /dev/rbd3
Old scheme (modprobe rbd):
$ ls -l /dev/rbd*
brw-rw---- 1 root disk 253, 0 Dec 10 12:24 /dev/rbd0
brw-rw---- 1 root disk 252, 0 Dec 10 12:28 /dev/rbd1
brw-rw---- 1 root disk 252, 1 Dec 10 12:28 /dev/rbd1p1
brw-rw---- 1 root disk 252, 2 Dec 10 12:28 /dev/rbd1p2
brw-rw---- 1 root disk 252, 3 Dec 10 12:28 /dev/rbd1p3
brw-rw---- 1 root disk 251, 0 Dec 10 12:28 /dev/rbd2
brw-rw---- 1 root disk 251, 1 Dec 10 12:28 /dev/rbd2p1
brw-rw---- 1 root disk 250, 0 Dec 10 12:24 /dev/rbd3
New scheme (modprobe rbd single_major=Y):
$ ls -l /dev/rbd*
brw-rw---- 1 root disk 253, 0 Dec 10 12:30 /dev/rbd0
brw-rw---- 1 root disk 253, 256 Dec 10 12:30 /dev/rbd1
brw-rw---- 1 root disk 253, 257 Dec 10 12:30 /dev/rbd1p1
brw-rw---- 1 root disk 253, 258 Dec 10 12:30 /dev/rbd1p2
brw-rw---- 1 root disk 253, 259 Dec 10 12:30 /dev/rbd1p3
brw-rw---- 1 root disk 253, 512 Dec 10 12:30 /dev/rbd2
brw-rw---- 1 root disk 253, 513 Dec 10 12:30 /dev/rbd2p1
brw-rw---- 1 root disk 253, 768 Dec 10 12:30 /dev/rbd3
(major 253 was assigned dynamically at module load time)
The new limit is 4096 images mapped at once, and it comes from the fact
that, as before, 256 minor numbers are reserved for each mapping.
(A follow-up commit changes the number of minors reserved and the way
we deal with partitions over that number.)
If single_major is set to true, two new sysfs interfaces show up:
/sys/bus/rbd/{add,remove}_single_major. These are to be used instead
of /sys/bus/rbd/{add,remove}, which are disabled for backwards
compatibility reasons outlined above.
Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
Reviewed-by: Alex Elder <elder@linaro.org>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2013-12-13 15:28:57 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2014-10-09 17:06:01 +04:00
|
|
|
|
|
|
|
|
|
2013-12-13 15:28:57 +02:00
|
|
|
|
|
|
|
|
|
2013-05-01 12:43:03 -05:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
|
|
|
|
|
2013-02-19 12:25:56 -06:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
2014-05-20 15:46:04 +04:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
rbd: add support for single-major device number allocation scheme
Currently each rbd device is allocated its own major number, which
leads to a hard limit of 230-250 images mapped at once. This commit
adds support for a new single-major device number allocation scheme,
which is hidden behind a new single_major boolean module parameter and
is disabled by default for backwards compatibility reasons. (Old
userspace cannot correctly unmap images mapped under single-major
scheme and would essentially just unmap a random image, if that.)
$ rbd showmapped
id pool image snap device
0 rbd b100 - /dev/rbd0
1 rbd b101 - /dev/rbd1
2 rbd b102 - /dev/rbd2
3 rbd b103 - /dev/rbd3
Old scheme (modprobe rbd):
$ ls -l /dev/rbd*
brw-rw---- 1 root disk 253, 0 Dec 10 12:24 /dev/rbd0
brw-rw---- 1 root disk 252, 0 Dec 10 12:28 /dev/rbd1
brw-rw---- 1 root disk 252, 1 Dec 10 12:28 /dev/rbd1p1
brw-rw---- 1 root disk 252, 2 Dec 10 12:28 /dev/rbd1p2
brw-rw---- 1 root disk 252, 3 Dec 10 12:28 /dev/rbd1p3
brw-rw---- 1 root disk 251, 0 Dec 10 12:28 /dev/rbd2
brw-rw---- 1 root disk 251, 1 Dec 10 12:28 /dev/rbd2p1
brw-rw---- 1 root disk 250, 0 Dec 10 12:24 /dev/rbd3
New scheme (modprobe rbd single_major=Y):
$ ls -l /dev/rbd*
brw-rw---- 1 root disk 253, 0 Dec 10 12:30 /dev/rbd0
brw-rw---- 1 root disk 253, 256 Dec 10 12:30 /dev/rbd1
brw-rw---- 1 root disk 253, 257 Dec 10 12:30 /dev/rbd1p1
brw-rw---- 1 root disk 253, 258 Dec 10 12:30 /dev/rbd1p2
brw-rw---- 1 root disk 253, 259 Dec 10 12:30 /dev/rbd1p3
brw-rw---- 1 root disk 253, 512 Dec 10 12:30 /dev/rbd2
brw-rw---- 1 root disk 253, 513 Dec 10 12:30 /dev/rbd2p1
brw-rw---- 1 root disk 253, 768 Dec 10 12:30 /dev/rbd3
(major 253 was assigned dynamically at module load time)
The new limit is 4096 images mapped at once, and it comes from the fact
that, as before, 256 minor numbers are reserved for each mapping.
(A follow-up commit changes the number of minors reserved and the way
we deal with partitions over that number.)
If single_major is set to true, two new sysfs interfaces show up:
/sys/bus/rbd/{add,remove}_single_major. These are to be used instead
of /sys/bus/rbd/{add,remove}, which are disabled for backwards
compatibility reasons outlined above.
Signed-off-by: Ilya Dryomov <ilya.dryomov@inktank.com>
Reviewed-by: Alex Elder <elder@linaro.org>
Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
2013-12-13 15:28:57 +02:00
|
|
|
|
|
|
|
|
|
2014-10-09 17:06:01 +04:00
|
|
|
|
2013-05-01 12:43:03 -05:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-05-31 20:13:09 -05:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-12-13 15:28:56 +02:00
|
|
|
|
2010-08-12 16:11:25 -07:00
|
|
|
|