[linux-lvm] lvcreate segfaults
AJ Lewis
lewis at sistina.com
Wed Sep 5 20:37:03 UTC 2001
On Wed, Sep 05, 2001 at 01:32:34PM -0500, John Marquart wrote:
> Good afternoon,
> I am running LVM 1.0.1rc2 on 2.4.8 kernel ontop of a IBM
> Serverraid 4Mx RAID5 filesystem. I am trying to create a new lv using
> "lvcreate -n foo -L 4M rootvg" - however that command insists on giving me
> a segfault.
Here is a patch that should fix this problem. It has already been applied
to the CVS. just save this to a file and apply it to the 1.0.1-rc2 source
with the -p0 flag after cd'ing to the 1.0.1-rc2 directory.
Index: tools/lib/liblvm.h
===================================================================
RCS file: /var/cvs/LVM/tools/lib/liblvm.h,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -b -B -r1.26 -r1.27
--- tools/lib/liblvm.h 2001/08/29 13:13:25 1.26
+++ tools/lib/liblvm.h 2001/09/03 08:14:05 1.27
@@ -214,7 +214,7 @@
int vg_create_dir_and_group ( vg_t *);
int vg_create_dir_and_group_and_nodes ( vg_t *, int);
void vg_deactivate ( char *);
-inline int vg_extend ( char *, pv_t *, vg_t *);
+int vg_extend ( char *, pv_t *, vg_t *);
int vg_free ( vg_t *, int);
char *vg_name_of_lv ( char *);
int vg_remove ( char *);
@@ -222,7 +222,7 @@
int vg_read ( char *, vg_t **);
int vg_read_from_pv ( char *, vg_t **);
int vg_read_with_pv_and_lv ( char *, vg_t **);
-inline int vg_reduce ( char *, pv_t *, vg_t *);
+int vg_reduce ( char *, pv_t *, vg_t *);
int vg_remove_dir_and_group_and_nodes ( char *);
int vg_set_extendable ( char*);
void vg_setup_pointers_for_snapshots ( vg_t*);
@@ -317,10 +317,10 @@
lv_t *lv_copy_from_disk ( lv_disk_t *);
lv_disk_t *lv_copy_to_disk ( lv_t *);
int lv_count_pe ( pv_t *, int);
-inline int lv_create ( vg_t *, lv_t *, char *);
+int lv_create ( vg_t *, lv_t *, char *);
int lv_create_name ( char *, char *, int);
int lv_create_node ( lv_t *);
-inline int lv_extend ( vg_t *, lv_t *, char *);
+int lv_extend ( vg_t *, lv_t *, char *);
int lv_get_index_by_kdev_t ( vg_t *, kdev_t);
int lv_get_index_by_minor ( vg_t *, int);
int lv_get_index_by_name ( vg_t *, char *);
@@ -335,9 +335,9 @@
int lv_read_COW_table ( vg_t * vg, lv_t * lv);
int lv_read_with_pe ( char *, char *, lv_t **);
int lv_read_all_lv ( char *, lv_t ***, int);
-inline int lv_reduce ( vg_t *, lv_t *, char *);
+int lv_reduce ( vg_t *, lv_t *, char *);
int lv_release ( vg_t *, char *);
-inline int lv_remove ( vg_t *, lv_t *, char *);
+int lv_remove ( vg_t *, lv_t *, char *);
int lv_rename ( char *, lv_t *);
int lv_setup_for_create ( char *, vg_t **, char *, int *,
uint, uint, uint, uint, uint, uint, char **);
Index: tools/lib/lv_create_remove.c
===================================================================
RCS file: /var/cvs/LVM/tools/lib/lv_create_remove.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -B -r1.3 -r1.4
--- tools/lib/lv_create_remove.c 2001/04/24 14:29:21 1.3
+++ tools/lib/lv_create_remove.c 2001/09/03 08:14:05 1.4
@@ -39,12 +39,12 @@
int lv_create_remove ( vg_t *, lv_t *, char *, int);
-inline int lv_create ( vg_t *vg, lv_t *lv, char *lv_name) {
+int lv_create ( vg_t *vg, lv_t *lv, char *lv_name) {
return lv_create_remove ( vg, lv, lv_name, LV_CREATE);
}
-inline int lv_remove ( vg_t *vg, lv_t *lv, char *lv_name) {
+int lv_remove ( vg_t *vg, lv_t *lv, char *lv_name) {
return lv_create_remove ( vg, lv, lv_name, LV_REMOVE);
}
Index: tools/lib/lv_extend_reduce.c
===================================================================
RCS file: /var/cvs/LVM/tools/lib/lv_extend_reduce.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -B -r1.3 -r1.4
--- tools/lib/lv_extend_reduce.c 2001/04/24 14:29:21 1.3
+++ tools/lib/lv_extend_reduce.c 2001/09/03 08:14:05 1.4
@@ -36,15 +36,15 @@
#include <liblvm.h>
/* internal function */
-inline int lv_extend_reduce ( vg_t *, lv_t *, char *, int);
+int lv_extend_reduce ( vg_t *, lv_t *, char *, int);
-inline int lv_extend ( vg_t *vg, lv_t *lv, char *lv_name) {
+int lv_extend ( vg_t *vg, lv_t *lv, char *lv_name) {
return lv_extend_reduce ( vg, lv, lv_name, LV_EXTEND);
}
-inline int lv_reduce ( vg_t *vg, lv_t *lv, char *lv_name) {
+int lv_reduce ( vg_t *vg, lv_t *lv, char *lv_name) {
return lv_extend_reduce ( vg, lv, lv_name, LV_REDUCE);
}
Index: tools/lib/system_id.c
===================================================================
RCS file: /var/cvs/LVM/tools/lib/system_id.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -B -r1.3 -r1.4
--- tools/lib/system_id.c 2001/04/24 14:29:21 1.3
+++ tools/lib/system_id.c 2001/09/03 08:14:05 1.4
@@ -36,7 +36,7 @@
#include <liblvm.h>
#include <sys/utsname.h>
-inline int system_id_set ( char *system_id) {
+int system_id_set ( char *system_id) {
int ret = 0;
struct utsname uts;
@@ -52,7 +52,7 @@
}
-inline int system_id_set_exported ( char *system_id) {
+int system_id_set_exported ( char *system_id) {
int ret = 0;
struct utsname uts;
@@ -69,7 +69,7 @@
}
-inline int system_id_set_imported ( char *system_id) {
+int system_id_set_imported ( char *system_id) {
int ret = 0;
debug_enter ( "system_id_set_imported -- CALLED\n");
@@ -84,7 +84,7 @@
}
-inline int system_id_check_exported ( char *system_id) {
+int system_id_check_exported ( char *system_id) {
int ret = UNDEF;
debug_enter ( "system_id_check_exported -- CALLED\n");
@@ -101,7 +101,7 @@
}
-inline int system_id_check_imported ( char *system_id) {
+int system_id_check_imported ( char *system_id) {
int ret = UNDEF;
debug_enter ( "system_id_check_imported -- CALLED\n");
Index: tools/lib/vg_extend_reduce.c
===================================================================
RCS file: /var/cvs/LVM/tools/lib/vg_extend_reduce.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -B -r1.3 -r1.4
--- tools/lib/vg_extend_reduce.c 2001/04/24 14:29:21 1.3
+++ tools/lib/vg_extend_reduce.c 2001/09/03 08:14:05 1.4
@@ -39,12 +39,12 @@
int vg_extend_reduce ( char *, pv_t *, vg_t *, int);
-inline int vg_extend ( char *vg_name, pv_t *pv, vg_t *vg) {
+int vg_extend ( char *vg_name, pv_t *pv, vg_t *vg) {
return vg_extend_reduce ( vg_name, pv, vg, VG_EXTEND);
}
-inline int vg_reduce ( char *vg_name, pv_t *pv, vg_t *vg) {
+int vg_reduce ( char *vg_name, pv_t *pv, vg_t *vg) {
return vg_extend_reduce ( vg_name, pv, vg, VG_REDUCE);
}
Regards,
--
AJ Lewis
Sistina Software Inc. Voice: 612-638-0500
1313 5th St SE, Suite 111 Fax: 612-638-0500
Minneapolis, MN 55414 E-Mail: lewis at sistina.com
http://www.sistina.com
Current GPG fingerprint = 60F3 160D C0D5 2C4B 751B 4FF9 6F67 E9BC 44CD DE95
-----Begin Obligatory Humorous Quote----------------------------------------
File not found. Should I fake it? (Y/N)
-----End Obligatory Humorous Quote------------------------------------------
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 232 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/linux-lvm/attachments/20010905/d7e0b07e/attachment.sig>
More information about the linux-lvm
mailing list