On Thu, Jul 04, 2024 at 02:43:04PM -0600, Martin Oliveira wrote: > On 2024-07-04 11:02, Matthew Wilcox wrote:> Seems to me we should actually _handle_ that, not do something wrong. > > eg: > > > > if (vma->vm_ops) { > > if (vma->vm_ops->close) > > goto out_put; > > if (WARN_ON(vma->vm_ops->page_mkwrite)) > > goto out_put; > > } > > Good point. Btw, sorry if I mislead you with my WARN_ON_ONCE suggestion. That was always intended in addition to the error handling, not instead. (In fact there are very few reasons to use WARN_ON* without actually handling the error as well). > > > or maybe this doesn't need to be a WARN at all? After all, there > > isn't one for having a ->close method, so why is page_mkwrite special? > > Hmm yeah, they should probably be treated the same. > > Maybe ->close should be converted to WARN as well? It would be easier to > catch an error this way than chasing the EINVAL, but I'm OK either way. Yes, doing the same for ->close or anything unimplemented would be nice. But it's not really in scope for this series. kernfs really should be using it's own ops instead of abusing file_operations, but that's even more out of scope..