public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Kevin Corry <corryk@us.ibm.com>
To: Christoph Hellwig <hch@caldera.de>
Cc: evms-devel@lists.sourceforge.net, linux-kernel@vger.kernel.org
Subject: Re: gendisk list access (was: [Evms-devel] Unresolved symbols)
Date: Wed, 5 Dec 2001 16:18:33 -0600	[thread overview]
Message-ID: <01120516183303.13647@boiler> (raw)
In-Reply-To: <OFCE7B6713.9A6E1AF1-ON85256B02.004FB1C4@raleigh.ibm.com> <01120514525902.13647@boiler> <20011205225346.A7313@caldera.de>
In-Reply-To: <20011205225346.A7313@caldera.de>

On Wednesday 05 December 2001 15:53, Christoph Hellwig wrote:
> On Wed, Dec 05, 2001 at 02:52:59PM -0600, Kevin Corry wrote:
> > So one of my questions is: what is in store for the gendisk list in 2.5?
> > There is a comment in add_gendisk() about some part of that code going
> > away in 2.5 (although it's vague as to what the comment refers to),
>
> There are two comments, first
>
> * XXX: you should _never_ access this directly.
> *      the only reason this is exported is source compatiblity.
>
> over the declaration of gendisk_head - since 2.5.1-pre2 gendisk_head
> is static and the comment is gone.

Yes, I noticed that. This is why we are trying to find a different method for 
walking the gendisk list. :)

> The second is
>
> *      In 2.5 this will go away. Fix the drivers who rely on
> *      old behaviour.
>
> This is in add_gendisk and means that we currently work around callers
> trying to do add_gendisk on the same structure twice.  This will go away
> as soon as the 'sd' driver is fixed.

Ok.

> > but no
> > corresponding comment in del_gendisk(). Are these two APIs coming or
> > going? I've also noticed get_start_sect() and get_nr_sects() in genhd.c
> > in the latest 2.5 patches. Are there any more new APIs that will be
> > coming?
>
> For early 2.5 the above API will remain - for mid to late 2.5 I plan to
> get rid of per-major gendisk completly.  My design on a replacement is not
> yet written down, but the details are:
>
>  - the minor_shift member moves into the block queue
>  - each block queue gets a pointer to be used for partitioning, this will
>    be opaque to the drivers.
>  - a per-queue 'struct gendisk' equivalent (minus the fields that aren't
> used) will go into above pointer.
>  - partitions will be registered as normal block devices, to the layers
>    outside the partitioning handling there will be no difference between
>    a block device and a partition.
>
> Hope this helps..

Sounds good. Any chance you could just leave out the partitioning stuff and 
let EVMS handle it?

> > In order for EVMS to run this list correctly during volume discovery, and
> > to sufficiently abstract access to the gendisk list variables, and to
> > keep everything SMP safe, it seems we would need APIs such as
> > lock_gendisk_list(), unlock_gendisk_list(), get_gendisk_first(), and
> > get_gendisk_next(). I've included a patch below (against 2.4.16) for
> > genhd.c with examples of these APIs. EVMS could then use these to lock
> > the list, traverse the list and process all entries, and then unlock.
>
> This API looks really ugly to me.  Did you take a look at my 'walk_gendisk'
> patch I sent to the evms list some time ago?  (attached again).
>
> 	Christoph

Agreed, they are ugly. I didn't really write them to try to get them accepted 
or anything, just to generate some discussion.

I must have missed your walk_gendisk() patch the last time (do you remember 
how long ago you posted that?). It looks like it should accomplish just what 
we need for discovery, and provide the correct locking. Of course, Ram is 
gong to shoot me now, since I believe he suggested something like this 
earlier today. :)

We will go with the walk_gendisk() method, and add your genhd.c and genhd.h 
patches to our set of patches for EVMS.

-Kevin

  reply	other threads:[~2001-12-05 22:26 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <OFCE7B6713.9A6E1AF1-ON85256B02.004FB1C4@raleigh.ibm.com>
     [not found] ` <20011112173217.A3404@caldera.de>
2001-12-05 20:52   ` gendisk list access (was: [Evms-devel] Unresolved symbols) Kevin Corry
2001-12-05 21:53     ` Christoph Hellwig
2001-12-05 22:18       ` Kevin Corry [this message]
2001-12-05 22:38         ` Christoph Hellwig
2001-12-11 12:36       ` Andrew Clausen
2001-12-15 10:58         ` Christoph Hellwig

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=01120516183303.13647@boiler \
    --to=corryk@us.ibm.com \
    --cc=evms-devel@lists.sourceforge.net \
    --cc=hch@caldera.de \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox