On Wed, Jan 11, 2017 at 07:20:13AM -0500, Jeff Layton wrote: > On Wed, 2017-01-11 at 10:51 +0100, Johannes Thumshirn wrote: > > Introduce FMODE_SPLICE_READ and FMODE_SPLICE_WRITE. These modes check > > whether it is legal to read or write a file using splice. Both get > > automatically set on regular files and are not checked when a 'struct > > fileoperations' includes the splice_{read,write} methods. > > > > Could you add a description of the problem that this solves? I assume > you hit a problem trying to splice to/from a non-regular file, but it'd > be good to know what that problem was. The problem is that a driver's ->write() is called under KERNEL_DS this way. This happened for sg and bsg and caused 128394eff 'sg_write()/bsg_write() is not fit to be called under KERNEL_DS' as well as a0ac402cf 'Don't feed anything but regular iovec's to blk_rq_map_user_iov'. There have also been patches for InfiniBand AFAIR doing similar things. So this is to solve it for future abuses. HTH, Johannes -- Johannes Thumshirn Storage jthumshirn@xxxxxxx +49 911 74053 689 SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg GF: Felix Imendörffer, Jane Smithard, Graham Norton HRB 21284 (AG Nürnberg) Key fingerprint = EC38 9CAB C2C4 F25D 8600 D0D0 0393 969D 2D76 0850 -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html