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

Commit 8842b3be authored by Sage Weil's avatar Sage Weil
Browse files

ceph: clean up useless d_parent checks



d_parent is never NULL, and IS_ROOT() is the proper way to check for a
(non-self-referential) parent.

Reported-by: default avatarAl Viro <viro@ZenIV.linux.org.uk>
Signed-off-by: default avatarSage Weil <sage@inktank.com>
parent a2a32584
Loading
Loading
Loading
Loading
+3 −4
Original line number Diff line number Diff line
@@ -51,8 +51,7 @@ int ceph_init_dentry(struct dentry *dentry)
		goto out_unlock;
	}

	if (dentry->d_parent == NULL ||   /* nfs fh_to_dentry */
	    ceph_snap(dentry->d_parent->d_inode) == CEPH_NOSNAP)
	if (ceph_snap(dentry->d_parent->d_inode) == CEPH_NOSNAP)
		d_set_d_op(dentry, &ceph_dentry_ops);
	else if (ceph_snap(dentry->d_parent->d_inode) == CEPH_SNAPDIR)
		d_set_d_op(dentry, &ceph_snapdir_dentry_ops);
@@ -79,7 +78,7 @@ struct inode *ceph_get_dentry_parent_inode(struct dentry *dentry)
		return NULL;

	spin_lock(&dentry->d_lock);
	if (dentry->d_parent) {
	if (!IS_ROOT(dentry)) {
		inode = dentry->d_parent->d_inode;
		ihold(inode);
	}
@@ -1140,7 +1139,7 @@ static void ceph_d_prune(struct dentry *dentry)
	dout("ceph_d_prune %p\n", dentry);

	/* do we have a valid parent? */
	if (!dentry->d_parent || IS_ROOT(dentry))
	if (IS_ROOT(dentry))
		return;

	/* if we are not hashed, we don't affect D_COMPLETE */
+0 −11
Original line number Diff line number Diff line
@@ -1469,11 +1469,6 @@ char *ceph_mdsc_build_path(struct dentry *dentry, int *plen, u64 *base,
		else
			len += 1 + temp->d_name.len;
		temp = temp->d_parent;
		if (temp == NULL) {
			rcu_read_unlock();
			pr_err("build_path corrupt dentry %p\n", dentry);
			return ERR_PTR(-EINVAL);
		}
	}
	rcu_read_unlock();
	if (len)
@@ -1510,12 +1505,6 @@ char *ceph_mdsc_build_path(struct dentry *dentry, int *plen, u64 *base,
		if (pos)
			path[--pos] = '/';
		temp = temp->d_parent;
		if (temp == NULL) {
			rcu_read_unlock();
			pr_err("build_path corrupt dentry\n");
			kfree(path);
			return ERR_PTR(-EINVAL);
		}
	}
	rcu_read_unlock();
	if (pos != 0 || read_seqretry(&rename_lock, seq)) {