[linux-lvm] VFS-Patch
Patrick Caulfield
caulfield at sistina.com
Mon Oct 29 02:59:02 UTC 2001
On Fri, Oct 26, 2001 at 07:06:58AM -0700, Aman Shahi wrote:
>
> Hi Patrick,
> I tried with both 2.4.12-ac5 and 2.4.12-ac6 yesterday.
> Kernel compilation was giving error on alloc_kiovec
> and free_kiovec in lvm-snap.c. I replaced them with
> alloc_kiovec_sz and free_kiovec_sz and added one more
> int pointer in the calls. I am not sure whether that
> was proper, but I was able to compile the kernel. I
> was using 2.4.11 VFS-lock patch as u said.
>
> But when using snapshot my Machine got hung. I tried
> 2-3 times with both ac5 and ac6. But all the time the
> machine got hund and FS got corrupted.
>
> What might have I done wrong ?
That last parameter to alloc/free_kiovec_sz is the size of the
vector - it should be a pointer to an int that has the value
KIO_MAX_SECTORS
eg:
int ret, max_sectors;
int nbhs = KIO_MAX_SECTORS;
/* allocate kiovec to do chunk io */
ret = alloc_kiovec_sz(1, &lv_snap->lv_iobuf, &nbhs);
if (ret) goto out;
max_sectors = KIO_MAX_SECTORS << (PAGE_SHIFT-9);
ret = lvm_snapshot_alloc_iobuf_pages(lv_snap->lv_iobuf, max_sectors);
if (ret) goto out_free_kiovec;
/* allocate kiovec to do exception table io */
ret = alloc_kiovec_sz(1, &lv_snap->lv_COW_table_iobuf, &nbhs);
if (ret) goto out_free_kiovec;
Unfortunatley there's no sensible way in the patch builder to detect an ac
kernel that has this API change so it can;t be done automatically at present.
patrick
More information about the linux-lvm
mailing list