Re: [PATCH v5 2/7] dax: introduce dax device flag DAXDEV_RECOVERY

Jane Chu
2022-02-02T21:28:01Z

On 2/2/2022 5:23 AM, Christoph Hellwig wrote:
> On Fri, Jan 28, 2022 at 02:31:45PM -0700, Jane Chu wrote:
>> +int dax_prep_recovery(struct dax_device *dax_dev, void **kaddr)
>> +{
>> + if (dax_recovery_capable(dax_dev)) {
>> + set_bit(DAXDEV_RECOVERY, (unsigned long *)kaddr);
>> + return 0;
>> + }
>> + return -EINVAL;
>
> Setting a random bit on a passed in memory address looks a little
> dangerous to me.

Yeah, I see. Would you suggest a way to pass the indication from
dax_iomap_iter to dax_direct_access that the caller intends the
callee to ignore poison in the range because the caller intends
to do recovery_write? We tried adding a flag to dax_direct_access, and
that wasn't liked if I recall.

>
> Also I'd return early for the EINVAL case to make the flow a little
> more clear.

Agreed, will do.

thanks!
-jane