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

Commit cfc84c9f authored by Cyril Roelandt's avatar Cyril Roelandt Committed by Alex Elder
Browse files

ceph: fix dentry reference leak in ceph_encode_fh().



dput() was not called in the error path.

Signed-off-by: default avatarCyril Roelandt <tipecaml@gmail.com>
Reviewed-by: default avatarAlex Elder <elder@inktank.com>
parent 22cddde1
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -56,13 +56,15 @@ static int ceph_encode_fh(struct inode *inode, u32 *rawfh, int *max_len,
	struct ceph_nfs_confh *cfh = (void *)rawfh;
	int connected_handle_length = sizeof(*cfh)/4;
	int handle_length = sizeof(*fh)/4;
	struct dentry *dentry = d_find_alias(inode);
	struct dentry *dentry;
	struct dentry *parent;

	/* don't re-export snaps */
	if (ceph_snap(inode) != CEPH_NOSNAP)
		return -EINVAL;

	dentry = d_find_alias(inode);

	/* if we found an alias, generate a connectable fh */
	if (*max_len >= connected_handle_length && dentry) {
		dout("encode_fh %p connectable\n", dentry);