[linux-lvm] Inconsistent LVM code in 2.4.23-rc1

James G. Sack (jim) jsack at inostor.com
Wed Nov 19 07:22:15 UTC 2003


[Hope this reaches the right place -- I'm not on any list  -- please
reply/cc direct]

Linux kernel 2.4.23-rc1 has LVM patched code that differs from LVM 1.0.8
(as well as cvs HEAD) from sistina.com

Q: is the 2.4.23 code OK?
  if yes, should it be in cvs
  if no, should somebody tell Marcelo?



In essance, there are extra calls to vfree(snap_lv_ptr) at 4 places in
lvm_do_vg_create() by virtue of a "goto copy_fault" --AND-- what looks
like a correction to vg_ptr->pe_allocated 

A simple diff looks like
------------------------
1587,1588c1587
< 	if (minor >= ABS_MAX_VG) {
< 		kfree(vg_ptr);
---
> 	if (minor >= ABS_MAX_VG)
1590d1588
< 	}
1658c1656,1657
< 				goto copy_fault;
---
> 				lvm_do_vg_remove(minor);
> 				return -EFAULT;
1669c1668,1669
< 				goto copy_fault;
---
> 				lvm_do_vg_remove(minor);
> 				return -EFAULT;
1679c1679,1680
< 			goto copy_fault;
---
> 			lvm_do_vg_remove(minor);
> 			return -EFAULT;
1682c1683,1684
< 			goto copy_fault;
---
> 			lvm_do_vg_remove(minor);
> 			return -EFAULT;
1697,1700d1698
< copy_fault:
< 	lvm_do_vg_remove(minor);
< 	vfree(snap_lv_ptr);
< 	return -EFAULT;
2597c2595
< 		vg_ptr->pe_allocated -= old_lv->lv_allocated_le;
---
> 		vg_ptr->pe_allocated -= old_lv->lv_allocated_snapshot_le;
2598a2597
> 		old_lv->lv_allocated_snapshot_le = new_lv->lv_allocated_le;
---------------------------------------------------------------------------

Regards,
..jim




More information about the linux-lvm mailing list