Re: [PATCH 2/2] block: create ioctl to discard-or-zeroout a range of blocks

Ric Wheeler
2016-03-10T14:58:54Z

On 03/10/2016 04:38 AM, Theodore Ts'o wrote:
> On Wed, Mar 09, 2016 at 02:20:31PM -0800, Gregory Farnum wrote:
>> I really am sensitive to the security concerns, just know that if it's
>> a permanent blocker you're essentially blocking out a growing category
>> of disk users (who run on an awfully large number of disks!).
> Or they just have to use kernels with out-of-tree patches installed. :-P
>
> If you want to consider how many disks Google has that are using this
> patch, I probably could have appealed to Linus and asked him to accept
> the patch if I forced the issue. The only reason why I didn't was
> that people like Ric Wheeler threatened to have distro-specific
> patches to disable the feature, and at the end of the day, I didn't
> care that much. After all, if it makes it harder for large scale
> cloud companies besides Google to create more efficient userspace
> cluster file systems, it's not like I was keeping the patch a secret.
>
> So ultimately, if the Ceph developers want to make a case to Red Hat
> management that this is important, great. If not, it's not that hard
> for those people who need the patch and who are running large cloud
> infrastructures to simply apply the out-of-tree patch if they need it.
>
> Cheers,
>
> - Ted
>

What was objectionable at the time this patch was raised years back (not just to
me, but to pretty much every fs developer at LSF/MM that year) centered on the
concern that this would be viewed as a "performance" mode and we get pressure to
support this for non-priveleged users. It gives any user effectively the ability
to read the block device content for previously allocated data without restriction.

At the time, I also don't recall seeing the patch posted on upstream lists for
debate or justification.

As we discussed a few weeks back, I don't object to having support for doing
this in carefully controlled ways for things like user space file systems. In
effect, the problem of preventing other people's data being handed over to the
end user is taken on by that layer of code. I suspect that fits the use case at
google and Ceph both.

Regards,

Ric