From: Lubomir Rintel <lkundrak@v3.sk> To: Kirill Smelkov <kirr@nexedi.com>, Al Viro <viro@zeniv.linux.org.uk>, Linus Torvalds <torvalds@linux-foundation.org> Cc: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 2/3] *: convert stream-like files from nonseekable_open -> stream_open Date: Wed, 27 Mar 2019 07:54:28 +0100 [thread overview] Message-ID: <93930d9c577a7cf83dc7c96ae411dec4d6d47610.camel@v3.sk> (raw) In-Reply-To: <8794193f3040b798010970228d978c05ad56ec52.1553637462.git.kirr@nexedi.com> On Tue, 2019-03-26 at 23:23 +0000, Kirill Smelkov wrote: > Using scripts/coccinelle/api/stream_open.cocci added in the previous > patch, search and convert to stream_open all in-kernel nonseekable_open > users for which read and write actually do not depend on ppos and where > there is no other methods in file_operations which assume @offset > access. > > I've verified each generated change manually - that it is correct to convert - > and each other nonseekable_open instance left - that it is either not correct > to convert there, or that it is not converted due to current stream_open.cocci > limitations. The script also does not convert files that should be valid to > convert, but that currently have .llseek = noop_llseek or generic_file_llseek > for unknown reason despite file being opened with nonseekable_open (e.g. > drivers/input/mousedev.c) > > Among cases converted 14 were potentially vulnerable to read vs write deadlock > (see details in the previous patch): ... > and the reset were just safe to convert to stream_open because their > read and write do not use ppos at all and corresponding file_operations > do not have methods that assume @offset file access: ... > drivers/char/pcmcia/scr24x_cs.c:95:8-24: WARNING: scr24x_fops: .read() and .write() have stream semantic; safe to change nonseekable_open -> stream_open. ... > diff --git a/drivers/char/pcmcia/scr24x_cs.c b/drivers/char/pcmcia/scr24x_cs.c > index f6b43d9350f0..04b39c3596cc 100644 > --- a/drivers/char/pcmcia/scr24x_cs.c > +++ b/drivers/char/pcmcia/scr24x_cs.c > @@ -92,7 +92,7 @@ static int scr24x_open(struct inode *inode, struct file *filp) > kref_get(&dev->refcnt); > filp->private_data = dev; > > - return nonseekable_open(inode, filp); > + return stream_open(inode, filp); > } > > static int scr24x_release(struct inode *inode, struct file *filp) Acked-by: Lubomir Rintel <lkundrak@v3.sk> [scr24x_cs] Thanks, Lubo
next prev parent reply other threads:[~2019-03-27 6:54 UTC|newest] Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-03-26 22:20 [PATCH 1/3] fs: stream_open - opener for stream-like files so that read and write can run simultaneously without deadlock Kirill Smelkov 2019-03-26 23:22 ` [PATCH 3/3] fuse: Add FOPEN_STREAM and use stream_open() if filesystem returned that from open handler Kirill Smelkov 2019-04-24 7:13 ` [RESEND, PATCH " Kirill Smelkov [not found] ` <20190424160611.2A71321900@mail.kernel.org> 2019-04-24 19:16 ` Kirill Smelkov [not found] ` <8794193f3040b798010970228d978c05ad56ec52.1553637462.git.kirr@nexedi.com> 2019-03-27 6:54 ` Lubomir Rintel [this message] 2019-03-27 16:58 ` [PATCH 1/3] fs: stream_open - opener for stream-like files so that read and write can run simultaneously without deadlock Juergen Gross 2019-04-06 17:07 ` Linus Torvalds 2019-04-07 20:04 ` Kirill Smelkov 2019-04-08 0:09 ` Linus Torvalds 2019-04-14 7:11 ` Kirill Smelkov [not found] ` <4c4651e2-167e-bfcc-7b3e-cda118f98a69@rasmusvillemoes.dk> [not found] ` <20190409203807.GA13855@deco.navytux.spb.ru> [not found] ` <d8c23d05-8810-13a2-cc50-7a47ff35e90b@rasmusvillemoes.dk> 2019-04-11 12:38 ` Kirill Smelkov 2019-04-11 16:22 ` Linus Torvalds 2019-04-12 12:42 ` Kirill Smelkov 2019-04-13 16:54 ` Kirill Smelkov 2019-04-13 16:54 ` [PATCH 1/2] vfs: pass ppos=NULL to .read()/.write() of FMODE_STREAM files Kirill Smelkov 2019-04-13 17:27 ` Linus Torvalds 2019-04-13 17:38 ` Al Viro 2019-04-13 18:44 ` Kirill Smelkov 2019-04-13 16:55 ` [PATCH 2/2] vfs: use &file->f_pos directly on files that have position Kirill Smelkov
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=93930d9c577a7cf83dc7c96ae411dec4d6d47610.camel@v3.sk \ --to=lkundrak@v3.sk \ --cc=kirr@nexedi.com \ --cc=linux-fsdevel@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=torvalds@linux-foundation.org \ --cc=viro@zeniv.linux.org.uk \ --subject='Re: [PATCH 2/3] *: convert stream-like files from nonseekable_open -> stream_open' \ /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
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).