[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[lvm-devel] Re: [PATCH 02/15] lvm-merge-metadata



On Sun, Nov 22 2009 at  3:43pm -0500,
Zdenek Kabelac <zkabelac redhat com> wrote:

> Dne 21.11.2009 03:06, Mike Snitzer napsal(a):
> > On Fri, Nov 20 2009 at  6:26pm -0500,
> > Zdenek Kabelac <zkabelac redhat com> wrote:
> > 
> >> Dne 20.11.2009 23:35, Mike Snitzer napsal(a):
> >>> From: Mikulas Patocka <mpatocka redhat com>
> >>>
> >>> Add 'SNAPSHOT_MERGE' lv_segment 'status' flag.
> >>>
> >>> Make 'merging_snapshot' pointer that points from the origin to the
> >>> segment that represents the merging snapshot.
> >>>
> >>> Import/export 'merging_store' metadata.
> >>>
> >>> Do not allow creating snapshots while another snapshot is merging.
> >>> Snapshot created in this state would certainly contain invalid data.
> >>>
> >>> diff --git a/lib/metadata/metadata-exported.h b/lib/metadata/metadata-exported.h
> >>> index e9a3d5d..30073d3 100644
> >>> --- a/lib/metadata/metadata-exported.h
> >>> +++ b/lib/metadata/metadata-exported.h
> >>> @@ -60,6 +60,7 @@
> >>>  //#define ACTIVATE_EXCL		0x00100000U	/* LV - internal use only */
> >>>  //#define PRECOMMITTED		0x00200000U	/* VG - internal use only */
> >>>  #define CONVERTING		0x00400000U	/* LV */
> >>> +#define SNAPSHOT_MERGE		0x00800000U	/* SEG */
> >>>  
> >>>  #define MISSING_PV              0x00800000U	/* PV */
> >>
> >> I think reusing these bitfields might lead to unexpected troubles.
> > 
> > Nice catch, surprised I missed that.
> > 
> > Looks like I'll go with:
> > #define SNAPSHOT_MERGE          0x10000000U
> > 
> 
> Yes - one small step for you :), but we run out-of-bits here - for replicator
> I've tried to reduces bit usage just for 2 bits (instead of using separate bit
> for  _rimage, _rlog, _slog, replicator-dev) - but together with crypto we are
> out-of-space.
> 
> So either we might switch to 64bit status (simple) - or use some solution
> based on function  calls instead of bit checks.

Right, I think we should just switch to 64-bit status.

Mike


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]