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

Commit e072f8aa authored by Sage Weil's avatar Sage Weil
Browse files

ceph: don't BUG on ENOMEM during mds reconnect



We are in a position to return an error; do that instead.

Signed-off-by: default avatarSage Weil <sage@newdream.net>
parent f44c3890
Loading
Loading
Loading
Loading
+4 −3
Original line number Original line Diff line number Diff line
@@ -2324,7 +2324,7 @@ static int encode_caps_cb(struct inode *inode, struct ceph_cap *cap,
		path = ceph_mdsc_build_path(dentry, &pathlen, &pathbase, 0);
		path = ceph_mdsc_build_path(dentry, &pathlen, &pathbase, 0);
		if (IS_ERR(path)) {
		if (IS_ERR(path)) {
			err = PTR_ERR(path);
			err = PTR_ERR(path);
			BUG_ON(err);
			goto out_dput;
		}
		}
	} else {
	} else {
		path = NULL;
		path = NULL;
@@ -2332,7 +2332,7 @@ static int encode_caps_cb(struct inode *inode, struct ceph_cap *cap,
	}
	}
	err = ceph_pagelist_encode_string(pagelist, path, pathlen);
	err = ceph_pagelist_encode_string(pagelist, path, pathlen);
	if (err)
	if (err)
		goto out;
		goto out_free;


	spin_lock(&inode->i_lock);
	spin_lock(&inode->i_lock);
	cap->seq = 0;        /* reset cap seq */
	cap->seq = 0;        /* reset cap seq */
@@ -2376,8 +2376,9 @@ static int encode_caps_cb(struct inode *inode, struct ceph_cap *cap,
		unlock_kernel();
		unlock_kernel();
	}
	}


out:
out_free:
	kfree(path);
	kfree(path);
out_dput:
	dput(dentry);
	dput(dentry);
	return err;
	return err;
}
}