On Sun, Feb 19, 2017 at 4:27 AM, Al Viro <viro@xxxxxxxxxxxxxxxxxx> wrote: > On Mon, Jan 16, 2017 at 08:47:32PM +0100, Miklos Szeredi wrote: > >> > + umode_t mode, int open_flag) >> > +{ >> > + static const struct qstr name = QSTR_INIT("/", 1); >> > + struct dentry *child = NULL; >> > + struct inode *inode; >> > + int error; >> > + >> > + /* we want directory to be writable */ >> > + error = inode_permission(dir, MAY_WRITE | MAY_EXEC); >> >> This is not in the scope of this patch, but shoudln't we be using >> may_create() here? Or at least a variant without the audit thing... >> >> Al? > > may_create() expects directory + child dentry; here we have only parent. > IS_DEADDIR is rather pointless here - directory is not locked, for > starters, so rmdir might happen right under you. Or right after you've > returned from your function, for that matter. userns checks... > FWIW, no such checks are done in ->atomic_open() paths, so I'm not sure > how much are those worth... Eric would know since he added those checks. Thanks, Miklos