From: James Bottomley <James.Bottomley@suse.de>
To: Tejun Heo <tj@kernel.org>
Cc: jeff@garzik.org, linux-ide@vger.kernel.org,
jens.axboe@oracle.com, linux-scsi@vger.kernel.org,
linux-kernel@vger.kernel.org, ben@decadent.org.uk
Subject: Re: [PATCHSET] libata: implement ->set_capacity()
Date: Thu, 13 May 2010 11:06:18 -0500 [thread overview]
Message-ID: <1273766778.4353.200.camel@mulgrave.site> (raw)
In-Reply-To: <1273766206-17402-1-git-send-email-tj@kernel.org>
On Thu, 2010-05-13 at 17:56 +0200, Tejun Heo wrote:
> Hello, Jens, James, Jeff,
>
> This patchset implements ->set_capacity() in libata so that HPA can be
> unlocked on demand.
>
> 0001-block-restart-partition-scan-after-resizing-a-device.patch
> 0002-SCSI-implement-sd_set_capacity.patch
> 0003-libata-use-the-enlarged-capacity-after-late-HPA-unlo.patch
> 0004-libata-implement-on-demand-HPA-unlocking.patch
>
> 0001 makes partition scan code to restart after ->set_capacity().
> This makes sure that partitions which start beyond the HPA limit are
> discovered.
>
> 0002 implements ->set_capacity() in sd.
>
> 0003 makes libata accept device capacity larger than the initial one.
>
> 0004 implements ->set_capacity() in libata which asks libata EH to
> unlock HPA, waits and returns the new capacity.
>
> Ben Hutchings suggeseted implementing ->set_capacity() in libata and
> also reported the bug in the current partition scan code where it
> fails to discover partitions which start beyond the HPA limit.
>
> Unlocking HPA on-demand seems to be the safest default way to deal
> with HPA. Leaving HPA alone by default could fail to detect or
> truncate existing partitions while unlocking by default make it more
> prone to obscure data corruptions when combined with BIOSes beliving
> that they exclusively own the area beyond HPA limit.
>
> 0001 should be routed through the block tree. 0002 should go through
> SCSI but given the dependency and that libata is the only user, it
> would probably much easier to route it through libata-dev#upstream
> together with 0003 and 0004.
I'm not sure this is such a good interface ... it sounds very error
prone for what is effectively a binary lock/unlock. Instead of just
saying unlock the HPA and show me the new capacity (with a rescan), you
have to echo the right number of sectors to the set_capacity variable.
Isn't a hpa_unlock libata specific attribute better (you could even call
BLKRRPART from the user context of the write)?
James
next prev parent reply other threads:[~2010-05-13 16:06 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-05-13 15:56 [PATCHSET] libata: implement ->set_capacity() Tejun Heo
2010-05-13 15:56 ` [PATCH 1/4] block: restart partition scan after resizing a device Tejun Heo
2010-05-13 15:56 ` [PATCH 2/4] SCSI: implement sd_set_capacity() Tejun Heo
2010-05-13 15:56 ` [PATCH 3/4] libata: use the enlarged capacity after late HPA unlock Tejun Heo
2010-05-13 15:56 ` [PATCH 4/4] libata: implement on-demand HPA unlocking Tejun Heo
2010-05-13 16:06 ` James Bottomley [this message]
2010-05-13 16:22 ` [PATCHSET] libata: implement ->set_capacity() Tejun Heo
2010-05-13 16:38 ` James Bottomley
2010-05-13 16:54 ` Tejun Heo
2010-05-13 17:18 ` James Bottomley
2010-05-13 18:40 ` Tejun Heo
2010-05-13 17:13 ` Alan Cox
2010-05-13 17:40 ` Jens Axboe
2010-05-13 18:25 ` Tejun Heo
2010-05-15 13:22 ` Ben Hutchings
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=1273766778.4353.200.camel@mulgrave.site \
--to=james.bottomley@suse.de \
--cc=ben@decadent.org.uk \
--cc=jeff@garzik.org \
--cc=jens.axboe@oracle.com \
--cc=linux-ide@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=tj@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;
as well as URLs for NNTP newsgroup(s).