While reworking lookup_open() to implement O_CREAT|O_DIRECTORY I came
across inconsistency in how audit_inode_child() is called in various
file create paths.

audit_inode_child() is called in may_create_dentry() so that failed
filesystem operations still register an audit entry. On success, the
entry is overwritten when, for instance, fsnotify_create() is called.
This is the calling convention in vfs_create() and vfs_mkdir().
In lookup_open(), however, when atomic_open() should have created a
file but didn't, no call to audit_inode_child() is made. The same is
true for the regular ->create() path.

On the suggestion of Brauner, I am splitting this series from the
O_CREAT|O_DIRECTORY work, so that this can be discussed with the audit
people without delaying that work.

Jori Koolstra (3):
  vfs: move create error && negative dentry case in lookup_open() up
  vfs: call audit_inode_child() in lookup_open() on failure
  fs/namei.c: update kerneldoc of atomic_open()

 fs/namei.c | 128 ++++++++++++++++++++++++++++++++---------------------
 1 file changed, 78 insertions(+), 50 deletions(-)

-- 
2.55.0


Reply via email to