Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 76aab3ab authored by Al Viro's avatar Al Viro
Browse files

proc_sys_fill_cache(): switch to d_alloc_parallel()



make it usable with directory locked shared

Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 3781764b
Loading
Loading
Loading
Loading
+8 −7
Original line number Diff line number Diff line
@@ -627,19 +627,20 @@ static bool proc_sys_fill_cache(struct file *file,

	child = d_lookup(dir, &qname);
	if (!child) {
		child = d_alloc(dir, &qname);
		if (child) {
		DECLARE_WAIT_QUEUE_HEAD_ONSTACK(wq);
		child = d_alloc_parallel(dir, &qname, &wq);
		if (IS_ERR(child))
			return false;
		if (d_in_lookup(child)) {
			inode = proc_sys_make_inode(dir->d_sb, head, table);
			if (!inode) {
				d_lookup_done(child);
				dput(child);
				return false;
			} else {
			}
			d_set_d_op(child, &proc_sys_dentry_operations);
			d_add(child, inode);
		}
		} else {
			return false;
		}
	}
	inode = d_inode(child);
	ino  = inode->i_ino;