From: "Martin K. Petersen" <martin.petersen@oracle.com>
To: Ilya Dryomov <idryomov@gmail.com>
Cc: "Martin K. Petersen" <martin.petersen@oracle.com>,
Ceph Development <ceph-devel@vger.kernel.org>,
linux-block@vger.kernel.org,
Dan Williams <dan.j.williams@intel.com>,
Christoph Hellwig <hch@lst.de>
Subject: Re: blk_integrity_revalidate() clears BDI_CAP_STABLE_WRITES
Date: Tue, 21 Feb 2017 23:41:09 -0500 [thread overview]
Message-ID: <yq1efyq25y2.fsf@oracle.com> (raw)
In-Reply-To: <CAOi1vP8M91kiF-FnT=EoJgTxfstMEsC-nhLY5KtRkrKROjWPWA@mail.gmail.com> (Ilya Dryomov's message of "Mon, 20 Feb 2017 19:45:42 +0100")
>>>>> "Ilya" == Ilya Dryomov <idryomov@gmail.com> writes:
Ilya,
Ilya> could you please explain blk_integrity_revalidate() and
Ilya> its GENHD_FL_UP check in particular? We have the queue,
Ilya> bi->profile can't be NULL after blk_integrity_register(), and
Ilya> since the latter "must" be used for registering the profile with
Ilya> the block layer, wouldn't the following be sufficient for
Ilya> blk_integrity users?
IIrc, the FL_UP check fixed a registration problem in the nvme driver.
The rationale behind revalidate was that we need to handle devices which
lose the integrity capability at runtime (i.e. a integrity-enabled DM
device is extended with a non-cable drive forcing the feature to be
turned off). The clearing of the integrity profile is more important in
that case than zapping the stable pages flag. But that was the original
reason for not just ORing BDI_CAP_STABLE_WRITES.
I don't have a huge problem with keeping stable pages on if a device
suddenly stops being integrity capable. However, I'd like to understand
your use case a bit better.
Ilya> The alternative seems to be to set up a bogus
Ilya> blk_integrity_profile (nop_profile won't do -- this one would have
Ilya> to be truly bogus w/ NULL *_fn) under BLK_DEV_INTEGRITY ifdefs and
Ilya> hope that nothing breaks.
Can you point me to the relevant code on your end?
Thanks,
Martin
--
Martin K. Petersen Oracle Linux Engineering
next prev parent reply other threads:[~2017-02-22 4:41 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-20 18:45 blk_integrity_revalidate() clears BDI_CAP_STABLE_WRITES Ilya Dryomov
2017-02-22 4:41 ` Martin K. Petersen [this message]
2017-02-22 14:41 ` Ilya Dryomov
2017-02-23 23:49 ` Martin K. Petersen
2017-02-28 8:19 ` Ilya Dryomov
2017-03-02 3:24 ` Martin K. Petersen
2017-03-10 16:49 ` Ilya Dryomov
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=yq1efyq25y2.fsf@oracle.com \
--to=martin.petersen@oracle.com \
--cc=ceph-devel@vger.kernel.org \
--cc=dan.j.williams@intel.com \
--cc=hch@lst.de \
--cc=idryomov@gmail.com \
--cc=linux-block@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