f1a960eb91
- lvm2.spec: merge rules for device-mapper and lvm2-clvm packages, so there is only one spec file and all packages are built consistently. OBS-URL: https://build.opensuse.org/request/show/138672 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/lvm2?expand=0&rev=47
40 lines
1001 B
Diff
40 lines
1001 B
Diff
---
|
|
lib/filters/filter.c | 15 ++++++++++++++-
|
|
1 file changed, 14 insertions(+), 1 deletion(-)
|
|
|
|
--- LVM2.2.02.98.orig/lib/filters/filter.c
|
|
+++ LVM2.2.02.98/lib/filters/filter.c
|
|
@@ -13,6 +13,12 @@
|
|
* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
*/
|
|
|
|
+#include <sys/ioctl.h>
|
|
+#include <linux/fs.h>
|
|
+#undef MAJOR
|
|
+#undef MINOR
|
|
+#undef MKDEV
|
|
+
|
|
#include "lib.h"
|
|
#include "dev-cache.h"
|
|
#include "filter.h"
|
|
@@ -111,11 +117,18 @@ static int _passes_lvm_type_device_filte
|
|
}
|
|
|
|
/* Check it's accessible */
|
|
- if (!dev_open_readonly_quiet(dev)) {
|
|
+ if (!dev_open_flags(dev, O_RDONLY|O_NONBLOCK, 1, 1)) {
|
|
log_debug("%s: Skipping: open failed", name);
|
|
return 0;
|
|
}
|
|
|
|
+ /* Skip cdrom device */
|
|
+ #define CDROM_GET_CAPABILITY 0x5331
|
|
+ if (ioctl(dev->fd, CDROM_GET_CAPABILITY) >= 0) {
|
|
+ log_debug("%s: Skipping: cdrom device", name );
|
|
+ goto out;
|
|
+ }
|
|
+
|
|
/* Check it's not too small */
|
|
if (!dev_get_size(dev, &size)) {
|
|
log_debug("%s: Skipping: dev_get_size failed", name);
|