> > Why are those so important? Yes, if we have multiple vfs_() calls, > > surround them with an extra want/drop pair. We do already do multiple > > overlapping want/drop pairs with O_TRUNC and O_CREAT (AFAIR). > > The one that I remember is the pair that we take for O_CREAT and the > nameidata_to_filp() in do_filp_open() that we do on it after the > creation and hold while the file is open. > > The only reason for this one is that we want to shut down a potential > race that would allow the file to be created, then still return a -EROFS > because someone did a r/w->r/o transition between the create an the > nameidata_to_filp(). > > We could pass some information into nameidata_to_filp()->__dentry_open() > telling it that we already have a write and it doesn't need to take one, > but I think having the two nested writes is cleaner. Agreed. > Is that the case you're thinking of? Yes. And the same thing is done a little below for similar reasons around may_open() which does truncation. Miklos -- 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