From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mike Snitzer Subject: Re: [PATCH v2] dm: Fix alignment stacking on partitioned devices Date: Tue, 5 Jan 2010 23:10:51 -0500 Message-ID: <20100106041050.GA21438@redhat.com> References: <1261591640-24380-1-git-send-email-snitzer@redhat.com> <20100105182735.GC6042@agk-dp.fab.redhat.com> <20100106025731.GA16154@redhat.com> Reply-To: device-mapper development Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: dm-devel-bounces@redhat.com Errors-To: dm-devel-bounces@redhat.com To: "Martin K. Petersen" Cc: device-mapper development , "Alasdair G. Kergon" List-Id: dm-devel.ids On Tue, Jan 05 2010 at 10:24pm -0500, Martin K. Petersen wrote: > >>>>> "Mike" == Mike Snitzer writes: > > Mike, > > Mike> After looking closer there seems to be various type > Mike> inconsistencies in the alignment_offset and discard_alignment > Mike> related routines (returning 'int' in places, etc). > > Mike> The following patch is what I found; I have no problem with > Mike> switching from 'unsigned long' to blk_off_t for LBD though. > > I only use blk_off_t in the places where we're dealing with absolute > offsets. > > Blindly converting alignment_offset from int to unsigned long won't > work. We depend on being able to return -1 in case of > misalignment. Hence int and not unsigned int. Right, I realized/noticed that after I sent that patch. But even with your blk_off_t patch (and prior to it with sector_t) you're mixing int with blk_off_t in blk_stack_limits() by doing: alignment = queue_limit_alignment_offset(b, offset); This helped motivate my "blind" conversion. > Furthermore, the returned values are always modulo the granularity so > int is plenty big. OK.