提交 2363cc02 编写于 作者: A Andrew Morton 提交者: Linus Torvalds

[PATCH] remove protection of LANANA-reserved majors

Revert all this.  It can cause device-mapper to receive a different major from
earlier kernels and it turns out that the Amanda backup program (via GNU tar,
apparently) checks major numbers on files when performing incremental backups.

Which is a bit broken of Amanda (or tar), but this feature isn't important
enough to justify the churn.

Cc: Ingo Molnar <mingo@elte.hu>
Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
上级 c75fd0ee
...@@ -62,8 +62,6 @@ int register_blkdev(unsigned int major, const char *name) ...@@ -62,8 +62,6 @@ int register_blkdev(unsigned int major, const char *name)
/* temporary */ /* temporary */
if (major == 0) { if (major == 0) {
for (index = ARRAY_SIZE(major_names)-1; index > 0; index--) { for (index = ARRAY_SIZE(major_names)-1; index > 0; index--) {
if (is_lanana_major(index))
continue;
if (major_names[index] == NULL) if (major_names[index] == NULL)
break; break;
} }
......
...@@ -27,20 +27,6 @@ ...@@ -27,20 +27,6 @@
int (*platform_notify)(struct device * dev) = NULL; int (*platform_notify)(struct device * dev) = NULL;
int (*platform_notify_remove)(struct device * dev) = NULL; int (*platform_notify_remove)(struct device * dev) = NULL;
/*
* Detect the LANANA-assigned LOCAL/EXPERIMENTAL majors
*/
bool is_lanana_major(unsigned int major)
{
if (major >= 60 && major <= 63)
return 1;
if (major >= 120 && major <= 127)
return 1;
if (major >= 240 && major <= 254)
return 1;
return 0;
}
/* /*
* sysfs bindings for devices. * sysfs bindings for devices.
*/ */
......
...@@ -109,8 +109,6 @@ __register_chrdev_region(unsigned int major, unsigned int baseminor, ...@@ -109,8 +109,6 @@ __register_chrdev_region(unsigned int major, unsigned int baseminor,
/* temporary */ /* temporary */
if (major == 0) { if (major == 0) {
for (i = ARRAY_SIZE(chrdevs)-1; i > 0; i--) { for (i = ARRAY_SIZE(chrdevs)-1; i > 0; i--) {
if (is_lanana_major(i))
continue;
if (chrdevs[i] == NULL) if (chrdevs[i] == NULL)
break; break;
} }
......
...@@ -87,8 +87,6 @@ static inline unsigned sysv_minor(u32 dev) ...@@ -87,8 +87,6 @@ static inline unsigned sysv_minor(u32 dev)
return dev & 0x3ffff; return dev & 0x3ffff;
} }
bool is_lanana_major(unsigned int major);
#else /* __KERNEL__ */ #else /* __KERNEL__ */
/* /*
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册