Hello, On Fri, Jul 20, 2012 at 06:30:01PM +0200, Paolo Bonzini wrote: > These commands cannot be issued right now without giving CAP_SYS_RAWIO to > the process who wishes to send them. These commands can be useful also to > non-privileged programs who have access to the block devices. For example > a virtual machine monitor needs them to forward trim/discard to host disks. > > Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> > --- > block/scsi_ioctl.c | 3 ++ > 1 files changed, 3 insertions(+), 0 deletions(-) > > diff --git a/block/scsi_ioctl.c b/block/scsi_ioctl.c > index 260fa80..dd71f18 100644 > --- a/block/scsi_ioctl.c > +++ b/block/scsi_ioctl.c > @@ -168,13 +168,16 @@ static void blk_set_cmd_filter_defaults(struct > blk_cmd_filter *filter) > /* Basic writing commands */ > __set_bit(WRITE_6, filter->write_ok); > __set_bit(WRITE_10, filter->write_ok); > + __set_bit(WRITE_SAME, filter->write_ok); > __set_bit(WRITE_VERIFY, filter->write_ok); > __set_bit(WRITE_12, filter->write_ok); > __set_bit(WRITE_VERIFY_12, filter->write_ok); > __set_bit(WRITE_16, filter->write_ok); > + __set_bit(WRITE_SAME_16, filter->write_ok); > __set_bit(WRITE_LONG, filter->write_ok); > __set_bit(WRITE_LONG_2, filter->write_ok); > __set_bit(ERASE, filter->write_ok); > + __set_bit(UNMAP, filter->write_ok);
FWIW, I don't think this is the right way to expose functionality which needs management in terms of access control, interpretation (stacking drivers) and serving concurrent users. SG_IO filtering was mostly for cd/dvd burning and other removeable devices. Especially for the former, the possibility of having a properly encapsulated interface was long lost and I think significant part of that is how the underlying technology and its hardware interface developed. We basically just gave up. Fortunately, they're going the way of floppies. So, it wouldn't be a good idea to abuse SG_IO filtering for exposing trim/discard. It's something which should be retired or at least severely restricted in time. I don't think we want to be developing new uses of it. I think trim/discards are fairly easy to abstract and common enough to justify having properly abstracted interface. In fact, we already have block layer interface for it - BLKDISCARD. If it's lacking, let's improve that. Thanks. -- tejun -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html