Thread (4 messages) 4 messages, 2 authors, 2020-05-07

Re: [PATCH] powerpc/spufs: Add rcu_read_lock() around fcheck()

From: Christoph Hellwig <hch@lst.de>
Date: 2020-05-07 06:54:56
Also in: lkml

On Wed, Apr 29, 2020 at 09:42:39PM +1000, Michael Ellerman wrote:
Christoph Hellwig [off-list ref] writes:
quoted
On Tue, Apr 28, 2020 at 09:48:11PM +1000, Michael Ellerman wrote:
quoted
This comes from fcheck_files() via fcheck().

It's pretty clearly documented that fcheck() must be wrapped with
rcu_read_lock(), so fix it.
But for this to actually be useful you'd need the rcu read lock until
your are done with the file (or got a reference).
Hmm OK. My reasoning was that we were done with the struct file, because
we return the ctx that's hanging off the inode.

+	ctx = SPUFS_I(file_inode(file))->i_ctx;

But I guess the lifetime of the ctx is not guaranteed if the file goes
away.

It looks like the only long lived reference on the ctx is the one
taken in spufs_new_file() and dropped in spufs_evict_inode().

So if we take a reference to the ctx with the RCU lock held we should be
safe, I think. But I've definitely exhausted my spufs/vfs knowledge at
this point.

Something like below.
Looks reasonable.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help