Skip to contentSkip to conversation

align lv_on_disk.base to 512K blocks

PATCH New Michael Marxmeier 1 participant 1 message Sep 18, 2000

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 align lv_on_disk.base to 512K blocks

Forwarded message from Christoph Hellwig ([email protected]) ...

-------- Original Message --------
Date: Thu, 14 Sep 2000 20:48:33 +0200
From: Christoph Hellwig <[email protected]>
To: "Heinz J. Mauelshagen" <[email protected]>
Cc: Linux LVM mailing list <[email protected]>
Subject: [PATCH] align lv_on_disk.base to 512K blocks
Message-ID: <[email protected]>

Hi Heinz,

this patch makes vgcreate align the lv structures to 512K on disk, this makes reading them from kernel using bread much easier.

Could you aplly it to 0.9?

Christoph

Signature · 32 lines
Always remember that you are unique.  Just like everyone else.


--- vg_setup_for_create.c~      Thu Sep 14 19:30:11 2000
+++ vg_setup_for_create.c       Thu Sep 14 19:30:22 2000
@@ -43,6 +43,7 @@
    int ret = 0;
    uint pe_total = 0;
    ulong rest = 0;
+   ulong size = 0;
 
 #ifdef DEBUG
    debug_enter ( "vg_setup_for_create -- CALLED\n");
@@ -89,8 +90,11 @@
       vg->pv[p]->vg_on_disk.size = LVM_VG_DISK_SIZE;
       vg->pv[p]->pv_namelist_on_disk.base =
LVM_PV_NAMELIST_DISK_BASE;
       vg->pv[p]->pv_namelist_on_disk.size = ( max_pv + 1) * NAME_LEN;
-      vg->pv[p]->lv_on_disk.base =
vg->pv[p]->pv_namelist_on_disk.base +
-                                  
vg->pv[p]->pv_namelist_on_disk.size;
+      
+      size = vg->pv[p]->pv_namelist_on_disk.base +
vg->pv[p]->pv_namelist_on_disk.size;
+      vg->pv[p]->lv_on_disk.base = (size / SECTOR_SIZE) *
SECTOR_SIZE;
+      if (size % SECTOR_SIZE)
+         vg->pv[p]->lv_on_disk.base += SECTOR_SIZE;
       vg->pv[p]->lv_on_disk.size = ( max_lv + 1) * sizeof ( lv_t);
       LVM_PE_ON_DISK_BASE ( vg->pv[p]);
       strcpy ( vg->pv[p]->vg_name, vg->vg_name);