/* Implement PR_CAPBSET_DROP. Attempt to remove the specified capability from the current task's bounding set. Returns 0 on success, -ve on error.  */
static long cap_prctl_drop(struct cred *new, unsigned long cap)
/* Implement PR_CAPBSET_DROP. Attempt to remove the specified capability from the current task's bounding set. Returns 0 on success, -ve on error.  */
static long cap_prctl_drop(struct cred *new, unsigned long cap)
{
	if (!capable(CAP_SETPCAP))
		return -EPERM;
	if (!cap_valid(cap))
		return -EINVAL;
	cap_lower(new->cap_bset, cap);
	return 0;
}